Controller Device

ABSTRACT

A method of validating a cartridge for use with a controller device. The method includes reading a cartridge identifier from at least one of memory of the cartridge and memory of the controller device, obtaining known content associated with the cartridge based on the cartridge identifier, reading actual content from memory of the cartridge, comparing the known content with the actual content, and permitting communication between the controller device and the cartridge when the known content matches the actual content.

CROSS REFERENCE TO RELATED APPLICATIONS

This U.S. patent application claims priority under 35 U.S.C. §119(e) toU.S. Provisional Application 61/154,757, filed on Feb. 23, 2009; U.S.Provisional Application 61/177,300, filed on May 12, 2009; U.S.Provisional Application 61/223,698, filed on Jul. 7, 2009; U.S.Provisional Application 61/228,958, filed on Jul. 27, 2009; U.S.Provisional Application 61/229,265, filed on Jul. 28, 2009; U.S.Provisional Application 61/297,563, filed on Jan. 22, 2010; U.S.Provisional Patent 61/178,074, filed on May 14, 2009; and U.S.Provisional Patent Application 61/237,218, filed on Aug. 26, 2009. Thedisclosures of these prior applications are considered part of thedisclosure of this application and are hereby incorporated by referencein their entireties.

TECHNICAL FIELD

The disclosure relates to a controller device for interfacing withand/or controlling an external resource, such as an electronic cuttingmachine.

BACKGROUND

The scrapbooking industry has provided consumers with various tools,such as mechanical cutting and embossing tools, as well as electroniccutting machines. These tools and machines may be used to create designsfor personalizing books and journals, such as may be desired tomemorialize events and memories.

However, the scrapbooking tools available are typically large andcumbersome, and not easily portable. Moreover, digital scrapbookingsoftware may be found for personal computers, but may not be availablefor portable use. Thus, when digital scrapbooking is desired, theconsumer may be tied to a personal computer or laptop. Such a systemdoes not allow for easily portable operation and may further requirecomputer operating skills.

Thus, there is a need for a simple and portable device allowing for thescrapbooking design. Moreover, there is a need for the device tointerface with an electronic cutting machine to realize the designs bycutting out the constituent components, such as paper cutouts.Additionally, the digital content used to create the designs should becompatible with the electronic cutting machine, and other devices, suchas printers, as well as general scrapbooking software systems (such asthose operated using a personal computer). Moreover, there is a need toprovide the digital content in a secure manner so as to allow forunfettered use by the owner but providing security against unauthorizedduplication.

SUMMARY

In one aspect, the disclosure provides a method of operating acontroller device of an electronic cutting machine. The method includeswriting a controller device identifier to memory of the cartridge,writing a cartridge identifier to memory of the controller device, andpermitting communication between the controller device and thecartridge.

Implementations of the disclosure may include one or more of thefollowing features. In some implementations, the method includesaccessing the memory of the controller device for installation of thecontent (e.g., glyphs) associated with the cartridge and storing to thecontroller device memory any uninstalled content associated with thecartridge. Writing the cartridge identifier to the memory of thecontroller device may include writing the controller device identifierto a licensing list stored in the memory of the controller device. Themethod may include preventing additional controller device identifiersfrom being stored to the memory of the cartridge. In some examples, thecartridge identifier comprises a cartridge serial number and thecontroller device identifier comprises a controller device serialnumber.

In some implementations, a method of operating a controller device foran electronic cutting machine includes accessing content from at leastone of memory of a cartridge in communication with the controller deviceand content memory of the controller device, accessing securityinformation stored in cypto memory of the controller device, the cyptomemory configured as write-once and read-many, decrypting a license filestored in license memory of the controller device using the securityinformation, the license file comprising at least one cartridgeidentifier, and permitting usage of accessed content having anassociated cartridge identifier in the license file. In some examples,the method includes comparing each cartridge identifier associated withthe accessed content with each cartridge identifier of the license fileand/or accessing a content usage right from the license file associatedwith the permitted content.

In some implementations, the method includes initiating a cuttingoperation on the controller device for cutting a design on theelectronic cutting machine, the design including content associated withat least one cartridge. The content associated with the at least onecartridge may include at least one glyph. The method may includeallowing execution of the cutting operation after verifying cartridgeownership.

In some implementations, verifying cartridge ownership includesidentifying each cartridge associated with the content of the design,obtaining the cartridge identifier for each identified cartridge,searching the memory of the controller device for the cartridgeidentifier of each identified cartridge, and allowing execution of thecutting operation after each cartridge identifier of each identifiedcartridge is located in the memory of the controller device. Identifyingeach cartridge associated with the content of the design may includeusing content metadata of the design. The content metadata provides acartridge identifier for each corresponding portion of the design. Thecartridge identifier may be obtained from memory of the controllerdevice and/or an external source in communication with the controllerdevice. Examples of external sources include, but are not limited to, amemory device, a rich internet application (RIA) or softwareapplication, and an electronic cutting machine. The method may includeoffering purchase of a usage right of each identified cartridge having acartridge identifier absent from the memory of the controller device.Execution of the cutting operation may be allowed after selling a usageright for each identified cartridge having a cartridge identifier absentfrom the memory of the controller device.

In some implementations, the method includes operations for un-pairing apaired cartridge. In such instances, the method includes removing thecontroller device identifier from the memory of the cartridge andremoving the cartridge identifier from the memory of the controllerdevice.

Another aspect of the disclosure provides a method of operating acontroller device for an electronic cutting machine. The method includesinitiating a cutting operation on the controller device for cutting adesign on the electronic cutting machine, where the design includescontent associated with at least one cartridge. The method also includesidentifying each cartridge associated with the content of the design,obtaining a cartridge identifier for each identified cartridge,searching memory of the controller device for the cartridge identifierof each identified cartridge, and allowing execution of the cuttingoperation after each cartridge identifier of each identified cartridgeis located in the memory of the controller device.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, identifying eachcartridge associated with the content of the design includes usingcontent metadata of the design. The content metadata provides acartridge identifier for each corresponding portion of the design. Thecartridge identifier may be obtained from memory of the controllerdevice and/or an external source in communication with the controllerdevice. The content associated with the cartridge may comprise at leastone glyph.

In some implementations, the method includes offering purchase of ausage right of each identified cartridge having a cartridge identifierabsent from the memory of the controller device. Execution of thecutting operation may be allowed after selling a usage right for eachidentified cartridge having a cartridge identifier absent from thememory of the controller device.

An aspect of the disclosure provides a system for controlling anelectronic cutting machine. The system comprises a cartridge having aninterfacing connector and memory and a controller device. The controllerdevice comprises a cartridge connector for establishing an electricalconnection with the interfacing connector, memory, and a processorexecuting a controller application. The controller application writes acontroller device identifier to the memory of the connected cartridge,writes a cartridge identifier to the memory of the controller device,and permits usage on the controller device of content associated withthe cartridge.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, the controllerapplication accesses the memory of the controller device forinstallation of the content associated with the cartridge and stores tothe controller device memory any uninstalled content associated with thecartridge. The controller application may write the controller deviceidentifier to a licensing list stored in the memory of the controllerdevice. In some implementations, the controller application preventsadditional controller device identifiers from being stored to the memoryof the cartridge. In some examples, the cartridge identifier comprises acartridge serial number and the controller device identifier comprises acontroller device serial number.

The controller application, in some implementations, initiates a cuttingoperation on the controller device for cutting a design on theelectronic cutting machine, the design including content associated withat least one cartridge. In some examples, the content associated withthe cartridge comprises at least one glyph. The controller applicationexecutes the cutting operation after verifying cartridge ownership.Verifying cartridge ownership includes identifying each cartridgeassociated with the content of the design, obtaining the cartridgeidentifier for each identified cartridge, searching the memory of thecontroller device for the cartridge identifier of each identifiedcartridge, and allowing execution of the cutting operation after eachcartridge identifier of each identified cartridge is located in thememory of the controller device. In some implementations, the controllerapplication uses content metadata of the design for identifying eachcartridge associated with the content of the design. The contentmetadata provides a cartridge identifier for each corresponding portionof the design. The controller application may obtain the cartridgeidentifier from memory of the controller device and/or an externalsource in communication with the controller device. Examples of externalsources include, but are not limited to, a memory device, a richinternet application (RIA) or software application, and an electroniccutting machine. In some implementations, the controller applicationoffers purchase of a usage right of each identified cartridge having acartridge identifier absent from the memory of the controller device.The controller application may allow execution of the cutting operationafter selling a usage right for each identified cartridge having acartridge identifier absent from the memory of the controller device.

In yet another aspect, the disclosure provides a system for controllingan electronic cutting machine. The system includes a cartridge having aninterfacing connector and memory and a controller device. The controllerdevice includes a cartridge connector for establishing an electricalconnection with the interfacing connector, memory, and a processorexecuting a controller application. The processor is in communicationwith the cartridge connector and the controller device memory. Thecontroller application receives a cutting operation for cutting a designon the electronic cutting machine. The design includes contentassociated with at least one cartridge. The controller application alsoidentifies each cartridge associated with the content of the design,obtains a cartridge identifier for each identified cartridge, searchesmemory of the controller device for the cartridge identifier of eachidentified cartridge, and allows execution of the cutting operationafter each cartridge identifier of each identified cartridge is locatedin the memory of the controller device.

In some implementations, the controller application uses contentmetadata of the design for identifying each cartridge associated withthe content (e.g., glyphs) of the design. The content metadata providesa cartridge identifier for each corresponding portion of the design. Thecartridge identifier may be obtained from memory of the controllerdevice and/or an external source in communication with the controllerdevice. Examples of external sources include, but are not limited to, amemory device, a rich internet application (RIA) or softwareapplication, and an electronic cutting machine. In some implementations,the controller application offers purchase of a usage right of eachidentified cartridge having a cartridge identifier absent from thememory of the controller device. The controller application may allowexecution of the cutting operation after selling a usage right for eachidentified cartridge having a cartridge identifier absent from thememory of the controller device.

The controller device may be configured to receive an instruction toun-pair a paired cartridge. During an un-pairing operation, thecontroller application removes the controller device identifier from thememory of the cartridge and removes the cartridge identifier from thememory of the controller device.

Another aspect of the disclosure provides a method of validating acartridge for use with a controller device. The method includes readinga cartridge identifier from at least one of memory of the cartridge andmemory of the controller device, obtaining known content associated withthe cartridge based on the cartridge identifier, reading actual contentfrom memory of the cartridge, comparing the known content with theactual content, and permitting communication between the controllerdevice and the cartridge when the known content matches the actualcontent.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, comparing the knowncontent with the actual content includes comparing at least one Béziercurve of the known content with a corresponding at least one Béziercurve of the actual content. The method may include allowing usage ofcontent associated with the cartridge with the controller device whenthe known content matches the actual content. Moreover, the method mayinclude accessing the memory of the controller device for installationof the content associated with the cartridge and storing to thecontroller device memory any uninstalled allowed content associated withthe cartridge. The known content may be obtained from at least one ofmemory of the controller device and an external source in communicationwith the controller device. The known content and the actual content mayeach comprise a glyph.

In some implementations, the method includes executing a cuttingoperation of a design on an electronic cutting machine in communicationwith the controller device, where the design comprises allowed cartridgecontent. The method may include establishing communication between thecartridge and the controller device. The controller device reads acartridge identifier from memory of the cartridge.

In some implementations, the method includes establishing communicationbetween the controller device and an external resource. The externalresource receives a resource operation for executing a design on theexternal resource, where the design includes content associated with thecartridge. The external resource also obtains the cartridge identifierfor the cartridge, searches the memory of the controller device for thecartridge identifier, and allows execution of the resource operationafter the cartridge identifier is located in the memory of thecontroller device. The method may include checking existence ofcommunication between the controller device and the external resource.The external resource terminates execution of any resource operationsupon cessation of communication between the controller device and theexternal resource.

The method may include may include operations for pairing and un-pairingthe cartridge with the controller device. For pairing, the method mayinclude writing a controller device identifier to the memory of thecartridge and writing the cartridge identifier to the memory of thecontroller device. The method may include preventing additionalcontroller device identifiers from being stored to the memory of thecartridge. For un-pairing, the method may include removing thecontroller device identifier from the memory of the cartridge andremoving the cartridge identifier from the memory of the controllerdevice.

In some implementations, the method includes offering purchase of ausage right of the cartridge when the known content differs from theactual content. Execution of a cutting operation may be allowed afterselling a usage right for the cartridge when the known content differsfrom the actual content.

In another aspect, the disclosure provides a method of using acontroller device for an electronic cutting machine. The method includesassociating at least one of cutting operations and printing operationswith glyphs, retrieving the glyphs from at least one of memory of acartridge in communication with the controller device and memory of thecontroller device, arranging the glyphs in a screen overlay, andrendering the screen overlay on a screen of the controller device.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, the method includesstoring the glyph arrangement in memory of the controller. The methodmay include receiving at least one glyph selection corresponding to aglyph displayed on the controller device screen and executing anoperation on the controller device corresponding to the glyph selectionand/or receiving positioning input of the selected at least one glyphfor arrangement of the selected glyph on a virtual mat displayed on thecontroller device screen. The executed operation may include at leastone of a cutting operation, a printing operation, and a controllerdevice operation. The method may include storing glyph renderings and/oran arrangement of glyph renderings to memory of the controller device.

In some implementations, the method includes accessing the memory of thecontroller device for a stored glyph rendering and/or an arrangement ofglyph renderings, retrieving the stored glyph rendering and/or anarrangement of glyph renderings, and displaying the stored glyphrendering and/or an arrangement of glyph renderings to the controllerdevice screen. The screen overlay may comprise the arrangement of glyphrenderings.

In some implementations, the method includes mapping a glyph boundary ofeach glyph of the screen overlay to pixels of the controller devicescreen for identifying selection of each glyph. The controller devicescreen may include a touch screen configured to receive touch inputsthereupon.

In yet another aspect, the disclosure provides a controller device foran electronic cutting machine that includes a screen, a processor, anddevice memory in communication with the processor. The process is incommunication with the screen and executes a program for interfacingwith the controller device. The program associates at least one ofcutting operations and printing operations with glyphs, retrieves theglyphs from at least one of memory of a cartridge in communication withthe controller device and the device memory, arranges the glyphs in ascreen overlay, and renders the screen overlay on the screen.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, the programexecuting on the processor stores the glyph arrangement in the devicememory. The program may receive at least one glyph selectioncorresponding to a glyph displayed on the screen and execute anoperation on the controller device corresponding to the glyph selectionand/or receive positioning input of the selected at least one glyph forarrangement of the selected glyph on a virtual mat displayed on thescreen. The executed operation may include at least one of a cuttingoperation, a printing operation, and a controller device operation.

In some implementations, the program executing on the processor storesglyph renderings and/or an arrangement of glyph renderings to the devicememory. The program can access the device memory for a stored glyphrendering and/or arrangement of glyph renderings, retrieves the storedglyph rendering and/or arrangement of glyph renderings, and displays thestored glyph rendering and/or arrangement of glyph renderings to thescreen. In some examples, the screen overlay comprises the arrangementof glyph renderings.

The program executing on the processor may map a glyph boundary of eachglyph of the screen overlay to pixels of the screen for identifyingselection of each glyph. The screen may comprise a touch screenconfigured to receive touch inputs thereupon

Another aspect of the disclosure provides a method of using a controllerdevice for an electronic cutting machine. The method includesassociating at least one of cutting operations and printing operationswith glyphs, retrieving the glyphs from at least one of memory of acartridge in communication with the controller device and memory of thecontroller device, arranging the glyphs in a screen overlay, andrendering the screen overlay on a screen of the controller device.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, the method includesstoring the glyph arrangement in memory of the controller. The methodmay include receiving at least one glyph selection corresponding to aglyph displayed on the controller device screen and executing anoperation on the controller device corresponding to the glyph selection.The executed operation may include at least one of a cutting operation,a printing operation, and a controller device operation.

In some implementations, the method includes receiving a glyph selectioncorresponding to at least one glyph displayed on the controller devicescreen and receiving positioning input of the selected at least oneglyph for arrangement of the selected glyph on a virtual mat displayedon the controller device screen. The method may include storing glyphrenderings and/or an arrangement of glyph renderings to memory of thecontroller device. The method may include accessing the memory of thecontroller device for a stored glyph rendering and/or arrangement ofglyph renderings, retrieving the stored glyph rendering and/orarrangement of glyph renderings, and displaying the stored glyphrendering and/or arrangement of glyph renderings to the controllerdevice screen. Furthermore, the screen overlay may comprise thearrangement of glyph renderings. In some examples, the method includesmapping a glyph boundary of each glyph of the screen overlay to pixelsof the controller device screen for identifying selection of each glyph.The controller device screen may comprise a touch screen configured toreceive touch inputs thereupon.

In yet another aspect, the disclosure provides a controller device foran electronic cutting machine that includes a screen and a processor incommunication with the screen and device memory. The processor executesa program for interfacing with the controller device. The programassociates at least one of cutting operations and printing operationswith glyphs, retrieves the glyphs from at least one of memory of acartridge in communication with the controller device and the devicememory, arranges the glyphs in a screen overlay, and renders the screenoverlay on the screen.

Implementations of this aspect of the disclosure may include one or moreof the following features. In some implementations, the program storesthe glyph arrangement in the device memory. The program may receive atleast one glyph selection corresponding to a glyph displayed on thescreen and executes an operation on the controller device correspondingto the glyph selection. The executed operation can include at least oneof a cutting operation, a printing operation, and a controller deviceoperation. In some examples, the program receives a glyph selectioncorresponding to at least one glyph displayed on the screen and receivespositioning input of the selected at least one glyph for arrangement ofthe selected glyph on a virtual mat displayed on the screen.

In some implementations, the program stores glyph renderings and/or anarrangement of glyph renderings to the device memory. The program mayaccess the device memory for a stored glyph rendering and/or arrangementof glyph renderings, retrieve the stored glyph rendering and/orarrangement of glyph renderings, and display the stored glyph renderingand/or arrangement of glyph renderings to the screen. Furthermore, thescreen overlay may comprise the arrangement of glyph renderings. In someexamples, program maps a glyph boundary of each glyph of the screenoverlay to pixels of the screen (e.g., a touch screen configured toreceive touch inputs thereupon) for identifying selection of each glyph.

Another aspect of the disclosure provides a method of using a controllerdevice for an electronic cutting machine that includes receiving aselection of a glyph displayed in an overly view displayed on a screenof the controller device, displaying the selected glyph in a selectedglyph region of the overlay view and displaying the selected glyph on avirtual mat displayable on the screen of the controller device. Theoverly view comprises an arrangement of glyphs.

In some implementations, the method includes arranging an order of anyglyphs in the selected glyph region according to an order ofcorresponding placement on the virtual mat. In additionalimplementations, combinable with any others, the method includesarranging an order of any glyphs in the selected glyph region on thevirtual mat according to a corresponding order of the glyphs in theselected glyph region. The method may include arranging an order of anyglyphs in the selected glyph region according to an attribute of eachglyph. The glyph attribute may be selected from the group consisting ofname, size, shape, date saved, associated cartridge, and any combinationthereof. In some examples, the method includes receiving a selection ofglyphs in the selected glyph region, receiving a grouping command, andgrouping the selection of glyphs into a single group glyph for displayin the selected glyph region.

Another aspect of the disclosure provides a method of using a controllerdevice for an electronic cutting machine that includes receiving acontent search string, accessing content from at least one of memory ofa cartridge in communication with the controller device and memory ofthe controller device, and displaying on a screen of the controllerdevice a results list having for each content search result, a contentname and a cartridge name associated with the content search result. Insome implementations, the method includes receiving a search resultsselection and displaying an overlay on a screen of the controllerdevice, the overlay comprising an arrangement of content glyphsassociated with the cartridge of the corresponding search resultsselection, the overlay displaying a content glyph with an indication ofselection that corresponds to the search results selection.

The details of one or more implementations of the disclosure are setforth in the accompanying drawings and the description below. Otheraspects, features, and advantages will be apparent from the descriptionand drawings, and from the claims.

DESCRIPTION OF THE DRAWINGS

The disclosure will now be described, by way of example, with referenceto the accompanying drawings, in which:

FIG. 1 is a top view of an exemplary controller device.

FIG. 2 is a perspective view of an alternative exemplary controllerdevice.

FIG. 3A is a top perspective view of the controller device of FIG. 1.

FIG. 3B is a perspective view of an exemplary cartridge cable.

FIG. 3C is a perspective view of a cartridge cable connecting acartridge to a controller device.

FIG. 4 is a perspective view of a controller device.

FIG. 5 is a perspective view of a controller device interfacing with acartridge.

FIG. 6 is a perspective view of a controller device interfacing with anelectronic cutter.

FIG. 7 is a perspective view of a controller device interfacing with apersonal computer.

FIG. 8 is a schematic view of a controller device interfacing with apersonal computer and an electronic cutter.

FIG. 9 is a schematic view of a controller device interfacing with oneor more of an electronic cutter, a personal computer, and a cartridge.

FIG. 10 is a perspective view of a snap-in controller in a removedposition for use with an electronic cutting machine.

FIG. 11A is a bottom perspective view of a snap-in controller.

FIG. 11B is a perspective view of a snap-in controller in an attachedposition for use with an electronic cutting machine.

FIG. 11C is a schematic view of a snap-in controller as modularinterface to multiple devices.

FIG. 11D is a schematic view of a controller connecting to acontrollable machine to control the machine.

FIG. 11E is a schematic view of a controller connecting to an embroiderymachine to control the embroidery machine.

FIG. 11F is a schematic view of an interoperable system having one ormore user interfaces, one or more content devices, an intermediarydevice, and one or more controllable machines.

FIG. 12 is a schematic view of a system including a controller device.

FIG. 13 is a schematic view of an exemplary system configuration for acontroller device.

FIG. 14 is a schematic view of another exemplary system configurationfor a controller device.

FIG. 15 is a schematic view of a software system for use with thecontroller device.

FIG. 16 is a schematic view of a user interface application selectionscreen.

FIG. 17 is a schematic view of an exemplary arrangement of operations ofa method for cartridge ownership verification.

FIG. 18 is a schematic view of an exemplary arrangement of operations ofa method for pairing a cartridge with a controller device.

FIG. 19 is a schematic view of a data cartridge interfacing with acontroller device.

FIG. 20 is a schematic view of an exemplary arrangement of operations ofa method for validating a cartridge as genuine.

FIG. 21 is a schematic view of a cartridge ownership proxy.

FIG. 22 is a schematic view of a display rendering data store.

FIG. 23 is a schematic view of an exemplary arrangement of operations ofa method for display rendering from a cartridge.

FIG. 24 is a schematic view of a cartridge data store.

FIG. 25A is an example of two glyphs that the user desires to be welded.

FIG. 25B is an example of the glyphs overlaid for welding.

FIG. 25C is an example of the completed welded glyphs.

FIG. 26 is a schematic view of an exemplary arrangement of operations ofa method for adjusting a cutting machine's settings using a controllerdevice.

FIG. 27 is a schematic view of an exemplary arrangement of operations ofa generic use case for the controller device.

FIG. 28A is a schematic view of a design mat having designs to be cut.

FIG. 28B is a schematic view of a design mat showing keep-out areasafter the designs are cut.

FIG. 28C is a schematic view of a composite design.

FIG. 28D is a schematic view of component glyphs of the component designof FIG. 28C.

FIG. 29 is an example of a security scheme for the controller device.

FIG. 30 is a schematic view of a user interface for the controllerdevice.

FIG. 31 is a schematic view of a user interface including cartridgecontent selection for the controller device.

FIG. 32 is a schematic view of a user interface including page/matlayout for the controller device.

FIG. 33 is a schematic view of screen and menu changes for thecontroller device.

FIG. 34 is a schematic view of an application selection for thecontroller device.

FIG. 35 is a schematic view of an exemplary layout of the controllerdevice.

FIG. 36 is a schematic view of an exemplary application launcher for thecontroller device.

FIG. 37 is a schematic view of an exemplary selection list for thecontroller device.

FIG. 38 is a schematic view of an exemplary device settings screen thecontroller device.

FIG. 39 is a schematic view of an exemplary navigation screen for thecontroller device.

FIG. 40 is a schematic view of an exemplary user interface start screenfor the CRICUT® designer application.

FIG. 41 is a schematic view of an exemplary user interface mat-sizeselection screen.

FIG. 42 is a schematic view of an exemplary design selection loadscreen.

FIG. 43 is a schematic view of an exemplary mat design screen.

FIG. 44 is a schematic view of an exemplary mat menu screen.

FIG. 45 is a schematic view of an exemplary mat with entry screen.

FIG. 46 is a schematic view of an exemplary keypad/overlay screen.

FIG. 47 is a schematic view of an exemplary keyword search screen.

FIG. 48 is a schematic view of an exemplary entry screen.

FIG. 49 is a schematic view of an exemplary feature tree for theapplication selection screen.

FIG. 50 is a schematic view of an exemplary feature tree for the matdesign screen.

FIG. 51 is a schematic view of an exemplary feature tree for the keypadscreen.

FIG. 52 is a schematic view of an exemplary feature tree for a startmenu.

FIG. 53 is a schematic view of an exemplary feature tree for a mat menu.

FIG. 54 is a schematic view of an exemplary feature tree for pairingcartridges with a controller device.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

The figures illustrate implementations of a controller device for usewith a peripheral device and/or a personal computer. Based on theforegoing, it is to be generally understood that the nomenclature usedherein is simply for convenience and the terms used to describeimplementations of the disclosure should be given the broadest meaningby one of ordinary skill in the art.

In general, the benefits of using a controller device include, but notexclusively, that a personal computer is not required to control aperipheral device and/or to create designs, that the controller maystore content (e.g., glyphs), overlays, manuals, pre-made projects,user-made projects, and that it allows for the storage, modification,and printing of digital photographs. The peripherals may include anelectronic cutting machine, a printer, and/or an electronic printing andcutting machine. For examples of electronic cutting machines, U.S.patent application Ser. No. 11/457,415, filed Jul. 13, 2006, to Workmanet al., entitled “Electronic Paper Cutting Apparatus” and U.S. patentapplication Ser. No. 12/020,545, filed Jan. 27, 2008, to Johnson et al.,entitled “Cutting Apparatus” are incorporated by reference herein intheir entireties.

The controller provides for a number of features including mass storagethat allows users to store content in one place. For example, a user ofa CRICUT® electronic cutting machine (by Provo Craft & Novelty ofSpanish Fork, Utah) may load all of his/her cartridges onto thecontroller so that he/she would no longer have a need to carry physicalcartridges, manuals and overlays with him/her. The controller alsoprovides a mobile application solution as a portable device, whichallows the user to use programs on the controller that enable themanipulation of content, while connected or disconnected from a machinecontrollable by the controller. The user then has the ability tomanipulate content with the stand-alone controller. It is also desiredthat when the controller is connected to a personal computer that theuser may be provided with a more robust interface and the power of amouse and keyboard for ease of use. The controller also provides users anew way of controlling their peripheral products. For example, thecontroller may be connected directly to a CRICUT® electronic cuttingmachine and then be used to control the peripheral directly.

Application Software may run on the controller device that may be usedfor user-design, storage, and controlling the peripherals to performtheir functions. The controller device may be used as a standalonedevice, as connected to a personal computer, as connected to at leastone peripheral, or in combination of a connection with a personalcomputer and at least one peripheral. The connectivity may be throughthe controller device and/or the peripheral(s).

For example, when the controller device is connected to a personalcomputer running a design program and the personal computer is connectedto a CRICUT® machine, the design program may act as an electronic jukebox (e.g., an electronic storage unit for multiple cartridges, allowingthe user access to the stored content without the need to physicallyinstall and remove cartridges) for content to be printed and/or cut onthe connected machine. The controller may also be used as anauthentication system that provides the personal computer program with alist of cartridges that the owner is permitted to access and use toexecute machine operations, such as cutting and/or printing.

In another example, the controller device may be connected to a personalcomputer and the software can communicate with the controller to act asan activation dongle. This unlocking dongle function may be temporary sothat when the controller is unplugged from the personal computer, theprogram will revert back to a trial version. Moreover, the software forthe controller may be designed in a manner so as to localize thesoftware for different languages.

FIG. 1 illustrates an exemplary controller device 200 that includes ahousing 205, a screen 112 (e.g., a touch-enabled (resistive orcapacitive) touch screen and/or a pen-enabled screen (electromagneticresonance)) supported by the housing 205, a stylus 210 (showed in thestored position) received by the housing 205, user buttons 212, 214disposed on the housing 205, and a user hand grip 220 disposed on ordefined by the housing 205. The user hand grip 220 may allow the user tohold the controller 200 when in use. The user may operate the controller200 with the stylus 210 to make selections, motions, or designs on thetouch screen 112, and the user buttons 212, 214 may further allowselections, dragging, dropping, etc. An additional user button 310 (seeFIG. 3C) may allow for both left and right hand selection, in additionto input by the stylus 210 to the touch screen 112.

In some implementations, the user buttons 212, 214, 310 may provide atleast three states of device usage. A first state of usage includes nouser buttons 212, 214, 310 pressed during usage (e.g., during a userselection on the screen 112). A second state of usage includes one ofthe user buttons 212, 214, 310 pressed during usage, and a third stateof usage includes two of the user buttons 212, 214, 310 pressed duringusage. Each usage state may be associated with a screen overlay renderedand/or displayed to the screen 112. For example, the first usage statemay correspond to a general usage state, whereby a keypad or generalcontrol overlay is displayed. The second usage state may correspond toan altered state, such as a shift-key or Alt-key state, whereby a keypadoverlay in a shift-key state or Alt-key is displayed. This allows theuser to make shift-key or Alt-key selections without having to firstselect a shift or Alt key. The third usage state may correspond to aview state, whereby a user can move between views. For example, in thethird usage state, the user can toggle between a designer view 3200(FIG. 32) providing a virtual mat 2800 for creation and arrangement of adesign 2805 comprising one more glyphs 2810 and a keypad view 3100 (FIG.31) for selection of content (e.g., glyphs 2810) to place on the virtualmat 2800.

In general, the controller device 200 may provide software allowing theuser to create new designs, review designs, and cut/print designs onperipherals. Moreover, the controller device 200 may allow for securestorage of digital content (e.g., comprising one or more glyphs). Thedigital content may include, for example, artwork used to create cutand/or printed designs. The digital content may be displayed andmanipulated using the touch screen 112. That is to say, the user mayinteract with the controller device 200 using the touch screen 112, aswell as the user buttons 212, 214, to create designs as well as controlperipherals such as electronic cutting machines, printers, and the like.

The controller device 200 may be used to transport digital contentsecurely. For example, where digital content is sold to a consumer, theconsumer may enable the controller device 200 to store and provide thecontent for use on demand. Moreover, the controller device 200 mayenable the digital content for a variety of platforms. In some examples,the platform may include the CRICUT® electronic cutting machine. Whenthe controller device 200 is communicating with the CRICUT® electroniccutting machine, all of the digital content owned by the user may beavailable for use by the CRICUT® electronic cutting machine. In thisway, the controller device 200 may function as a digital content storagedevice, where the user need not transport cartridges for all of theuser's digital content. Alternatively, the controller device 200 mayalso allow for digital content delivery via a network interface, such asthe Internet. The digital content may be purchased and/or downloaded bythe user to the controller device 200, which then allows use of thedigital content.

The controller device 200 allows for various functions includingdesigning, reviewing, and modification of scrapbooking designs. Thecontroller device 200 provides a platform to store, use, and reviewdigital content. In addition, the controller device 200 provides aplatform for interacting with other design systems, as well as communityinteractions (e.g., uploading-publishing to blogs and other communitywebsites, as well as downloading designs from the same).

Cloud computing allows users to use applications without installationand provides access to their personal files at any computer or computingdevice with internet access. In general, cloud computing is virtualizedthird-party hosting, for example, where a user's server runs inside avirtual container which can be moved from one physical server to anotherwithout interruption of service. Such a container is also capable ofspanning multiple physical machines, giving it potentially limitlessresources. This allows for much more efficient computing by centralizingstorage, memory, processing and bandwidth. In some implementations, thecontroller device 200 (or software executable on a processor 240 (seeFIG. 11A) of the controller device 200) is a cloud client that relies oncloud computing for application delivery, or is specifically designedfor delivery of cloud services (e.g., content, design applications,etc.). The controller device 200 may execute rich internet applications(RIA) received through cloud computing. The RIA may provide designcreation tools and capabilities. Moreover, the user may receiveapplications or content on demand to the user's own controller device200 or other computing devices by accessing a subscription service.While in communication with or executing an RIA, the controller device200 may access information, such as machine, cartridge or contentspecific information from a cloud source (e.g., data storage in thecloud).

In some implementations, the RIA receives credit card information fromthe user to authenticate the user's log in. The RIA may requireconnection or communication with the controller device 200 toauthentication of the user. In some examples, the RIA tracks thebrowsing and usage of content for creating designs and delivers content(e.g., visually) to the user based on past usage of similar content(e.g., by category, keyword, etc.) and/or statistical analysis. Contentmay also be delivered to the user based on promotional activities orincentives.

As shown, the controller device 200 is configured to be a handhelddevice where the user may hold the device at user hand grip 220, and theuser may use the stylus 210 or his/her fingers to interact with touchscreen 112. Moreover, when the user's left hand is gripping hand grip220, the user may employ his/her left thumb to operate the user buttons212, 214. At the same time, the user may be cooperatively employing thestylus 210 to modify a design. An example of two-handed operations mayinclude stretching a glyph. The glyph may be represented on the touchscreen 112 as a shape. If, for example, the user button 212 wasconfigured as a soft-key for a “stretch” function, the user may push theuser button 212 with his/her left thumb while stretching the glyph withthe stylus in his/her right hand. In this way, the controller device 200may be used for two-handed inputs.

FIG. 2 is an alternative example of a controller device 200 includingthe touch screen 112, the user buttons 212, 214, a central user button310, and the hand grip 220. The controller device 200 may allow forportable carrying and handheld use. The central button 310 may be usedas a selection key, for example, while the user buttons 212, 214 may beused for feature keys (e.g., shift, zoom, pan, or size).

FIG. 3A is a top perspective view of the controller device 200 shown inFIG. 1. The controller device 200 further includes a stylus 210(received by a receptacle of the controller device 200), a cartridgeconnector 104, a USB-B port 106, a power connector 110, and a userselector button 320. The user selector button 320 may be configured foruser inputs or an on/off button depending on the state of controller100.

FIG. 3B is an example of a cartridge adapter 330 for use with thecontroller device 200. A cartridge connector 334 may be configured toconnect with a variety of cartridges, or a single type of cartridge. Anelectrical cable connects the cartridge connector 334 with a standardcontroller connector 332. The controller connector 332 is configured toconnect with the controller device 200 at a standard port, e.g.,cartridge connector 104 (see FIG. 3A). In general, the cartridgeconnector 104 may be configured to receive an interfacing connector 512of a cartridge 510 (see FIG. 5). Thus, in an example such as shown inFIG. 5, the cartridge 510 may be plugged directly into a controllerdevice 100. Alternatively, as shown in FIG. 3C, the cartridge adapter330 may be used to adapt the standard cartridge connector 104 to varioustypes of cartridges 510. The controller device 200 using a standardcartridge connector 104 and a cartridge adapter 330 may allow for olderlegacy cartridges with various interfacing connectors 512 to connectwith controller device 200, as well as provide an upgrade path to newercartridge formats (e.g., newer cartridge connectors and electronics) byproviding a new cartridge adapter 330 with a new cartridge connector334. In this way, the cartridge adapter 330 allows for future growth anduse of the controller device 200 as cartridges evolve.

FIG. 4 is a perspective view of a portable controller device 100 thatmay be used to control various peripheral devices, such as an electroniccutting machine, a printer, and/or an electronic printing and cuttingmachine. The controller device 100 includes a touch screen 112, a powerconnector 110, a USB-A port 108, a USB-B port 106, an upgraded cartridgeconnector 102, and a cartridge connector 104. The power connector 110may be used for providing power when an internal battery (not shown) isdead and for charging the battery. The cartridge connector 104 may beused, for example for connecting existing cartridges (e.g., cartridgesfor use with the CRICUT® electronic cutting machine) to the controllerdevice 100. The upgraded cartridge connector 102 may have a differentconnector format, and may be used to connect newer or future plannedcartridges to the controller device 100.

The controller device 100 may be used as a standalone device, or incombination with a peripheral device or computer. For example, when thecontroller device 100 is used as a standalone device, it may betransported for use as a portable designing device. The user may carrythe controller device 100 with them and work on projects on-the-go. Theuser interface (e.g., provided on the touch screen 112) may allow fordesigning layouts, photo cropping and arrangement, etc. The USBconnectors 106, 108 may be used to connect the portable controller 100to a personal computer and to a peripheral, alone or in combination.

FIG. 5 is an example 500 of the controller device 100 interfacing with acartridge 510. The user may plug the interfacing connector 512 of thecartridge 510 into the cartridge connector 104 of the controller device100 to provide the cartridge functionality to the controller device 100.For example, the controller device 100 may upload information from thecartridge 100 for storage internally (e.g., in memory 514 of thecartridge 510). Alternatively, controller device 100 may program thecartridge 510 with content (e.g., by writing content to the memory 514of the cartridge 510). In other examples, the controller device 100 mayvalidate the user by using the cartridge serial number read from thecartridge 500. The controller device 100 may also be configured to usethe content from the cartridge 510, and/or store the content locally onthe controller device 100 for use by the user at his/her convenience fordesign, and for controlling a peripheral device (e.g., an electroniccutting machine, a printer, and/or an electronic printing and cuttingmachine).

FIG. 6 is an example 600 of the controller device 100 interfacing withan electronic cutter 610. The controller device 100 may identify theelectronic cutter 610 via a communication interface, or it may bemanually identified by the user via the controller device 100. Thecontroller device 100 may then issue commands to the electronic cutter610 to control the cutting of shapes. When, for example, the electroniccutter 610 is configured as a printer & cutter, the controller device100 may issue commands to print and cut the desired shapes.

FIG. 7 is an example 700 of the controller device 100 interfacing with apersonal computer 710. The controller device 100 may communicate withthe personal computer 710 via a network (e.g., wireless, Ethernet,Bluetooth, etc.) or local interface (e.g., universal serial bus (USB)).Communication between the personal computer 710 and the controllerdevice 100 may provide upload and download of data (e.g., designs andinformation) therebetween. This may include provisioning the controllerdevice 100 with content or licenses for using content. Moreover, thecommunication may enable the controller device 100 to share designinformation with the personal computer 710 for synchronization ofdesigns. This may be helpful, for example, when a user portably createsor modifies a design with the controller device 100, and then desires tosynchronize the changes with the personal computer 710.

FIG. 8 is an example 800 of the controller device 100 interfacing with apersonal computer 710 and an electronic cutting machine 610. In someexamples, the controller device 100 receives information from thepersonal computer 710 and the electronic cutting machine 610. This maybe where a design is stored on the personal computer 710, but thecontrol of the peripheral (electronic cutting machine 610) is performedby the controller device 100.

Additional features of the controller device 100 may includeinteroperability, cartridge pairing, rendering/keypad, designing,output, finding images, security and upgrading.

FIG. 9 is an example 900 of a controller device 200 interfacing with theelectronic cutting machine 610, the personal computer 710, and thecartridge 510. In general, the controller device 200 may interface eachof these devices to store, control, and/or authorize use of digitalcontent. The digital content may be provided by a physical cartridge510, or it may be downloaded (for example, from the Internet, as bycloud computing). The controller device 200 provides a multi-purposeportable device that enables the user to create designs, review designs,share designs, cut designs (e.g., using the electronic cutting machine610) and control other peripherals.

In general, the cartridge 510 may store digital content. The digitalcontent may include glyphs, such as shapes letters, shadow effects, etc.In some examples, the cartridge 510 stores one or more libraries ofinformation that may be encrypted. The cartridge 510 may also storeinformation (e.g., in an extensible markup language (XML) file or datastructure) that maps the glyphs to a keypad (e.g., displayed on thescreen 112 of the controller device 200) for user selection of theglyphs.

The personal computer 710 may be used to operate design software such asCRICUT DESIGNSTUDIO® (by Provo Craft & Novelty, Inc. of Spanish Fork,Utah). The files that describe designs created on the controller device200 may also be compatible with CRICUT DESIGNSTUDIO®, or the like, andvice versa. The electronic cutting machine 610 may be connected using,for example, a USB interface or a wireless interface. In general, thecontroller device 200 provides a portable command center for the designand use of digital content.

Interoperability allows the controller device 200 to interact withvarious other systems and apparatuses. For example, the controllerdevice 200 can interface with a design software application, such asCRICUT DESIGNSTUDIO®, executable on a processor of the computer 710 oras a rich internet application (RIA), to share designs and content. Thecontroller device 200 may include a listing of authorized cartridges 510and/or content. These cartridges 510 and/or content may be licensed bythe user and that license information and/or authorization may be storedin the controller device 200. If the controller device 200 is placed incommunication with the design software application, the design softwareapplication may query the controller device 200 to obtain authorizationfor use. If certain content is authorized for use, the design softwareapplication may allow use of the content by the authorized user. In thisway, the controller device 200 functions as a portable “juke box” forall of the user's content and may provide other devices and/or systemswith the authorization to use the content. Thus, the controller device200 may function as a content dongle. The design software applicationmay detect the presence of the controller device 200 and automaticallydetect which content and/or cartridges 510 the user is authorized to cutwith. In some instances, the design software application retains norights to otherwise use the content without the controller device 200present and providing authorization for content usage.

In some implementations, the user connects the electronic cuttingmachine 610 (e.g., CRICUT®) to a computer 710 for the purposes ofcutting on the electronic cutting machine 610 using the design softwareapplication. If the controller device 200 is not present, the user mayneed to physically connect each desired cartridge 510 to the electroniccutting machine 610 before cutting any content from the cartridge 510.When prompted by the design software application, the user may connectthe cartridges 510 one at a time to the electronic cutting machine 610for authorization. For example, if design software application wants tocut a design that uses images from three different cartridges 510, theuser will have to insert those cartridges 510 one at a time. In anotherexample, if a jukebox machine, such as the CRICUT JUKEBOX® by ProvoCraft & Novelty of Spanish Fork, Utah, is connected to the electroniccutting machine 610 and the cartridges 510 in question are connected tothe jukebox machine (or the content of the cartridges is stored on thejukebox machine), the design software application will automaticallydetect the cartridges 510 (or their respective content) and cut a designselected from the content. In some examples, each jukebox machine may belimited to a certain number of cartridges (e.g., six cartridgecapacity). In such instances, multiple jukebox machines may be connectedtogether (electrically or by a wireless connection) to the electroniccutting machine. Alternatively, if the controller device 200 isconnected to the personal computer 710 executing the design softwareapplication, the controller device 200 automatically detects whichcartridges 510 the controller device 200 is authorized to access and usethrough controller device software (e.g., CRICUT® Application by ProvoCraft & Novelty of Spanish Fork, Utah) executed on a processor 240 (FIG.11A) of the controller device 200, and in turn allows design softwareapplication to access and use the authorized content of the cartridge(s)510 for operating the electronic cutting machine 610 (e.g., to cutshapes selected from the authorized content in media, such as paper).

In some implementations, one or more cartridges 510 are paired to thecontroller device 510 through the controller device application runningon the controller device 200. During the pairing process, the serialnumber of the controller device 200 may be written to the memory 514 ofthe cartridge 510. The cartridge 510 continues to function as it didbefore the serial number was written to the cartridge 510. However, theserial number on the cartridge 510 prevents the cartridge 510 from beingpaired to a different controller device 200 in the future. This may beused to prevent the unauthorized duplication of cartridges 510 onmultiple controller devices 200. Users may be advised to keep theircartridges 510 for the purposes of backup in case their controllerdevice 200 is lost, stolen or damaged.

FIG. 10 is an example 1000 of a snap-in type controller device 200 in aremoved position for use with the electronic cutting machine 610. Areceiving space 1010 defined by or configured on the electronic cuttingmachine 610 accepts or receives the controller device 200. Thecontroller device 200 may snap into a received position by aninterference fit, housing detents, or by some other physical connection.In other examples, the controller device 200 does not necessarilysnap-into a position, but otherwise establishes a connection with theelectronic cutting machine 610. A connector 1020 may be provided nearthe receiving space 1010 that the controller device 200 contacts duringengagement with the electronic cutting machine 610. In some examples,the controller device 200 includes a corresponding connector or contactpad 230 (as shown in FIG. 11A) configured to receive or be received bythe connector 1020 of the electronic cutting machine 610. The connectors230, 1020 of the controller device 200 and the electronic cutter 610,respectively, may have a specific interface configuration for providingpower and data communications, while in other examples, the connectors230, 1020 may comply with industry standards, such as a universal serialbus (USB) connector. Using the connector 1020, the controller device 200may communicate with the electronic cutter 610 to provide instructionsfor cutting. Alternatively, the controller 200 may communicatewirelessly (e.g., Bluetooth or Wi-Fi) with the electronic cutter 610.When the controller device 200 is separated from the electronic cutter610, the controller device 200 may be used as a portable device. Thereceiving space 1010 may be configured to receive features defined bythe controller housing 205, for example, to guide or align the connector230 for engagement with the corresponding connector 1020 of theelectronic cutting machine 610.

FIG. 11B illustrates an example 1100 of the snap-in type controllerdevice 200 in an attached position for use with the electronic cuttingmachine 610. The electronic cutting machine 610 may be embodied as astand-alone machine capable of operation with or without the controllerdevice 200. For example, in a stand-alone configuration, the electroniccutting machine 610 is used as a peripheral device to a personalcomputer, etc. The stand-alone configuration typically includes all ofthe control hardware and firmware to operate the electronic cuttingmachine 610 provided that external commands are given. Alternatively,the electronic cutting machine 610 may include a user interface and/orcartridge connector for direct use with or without a personal computer.

In some implementations, the electronic cutting machine 610 has certainprocessing capabilities removed so that the controller device 200 may beneeded to operate the electronic cutting machine 610. The controllerdevice 200 can be an independent device for creating designs (e.g., viadesigner application software executing on the processor 240) and ismodularly received by the electronic cutting machine 610 and otherperipheral machines or devices for implementing the designs (e.g., viacutting, printing, etc.). The controller device 200 operates as a mastercontroller of the connected machines. For example, the electroniccutting machine 610 includes low-level devices (such as stepper motorsand solenoids) and corresponding drivers, but may lack intelligencefeatures, such as a processor. When the controller device 200 isreceived by the electronic cutting machine 610 (e.g., in the receivingspace 1010), the connector 1020 establishes communications with thecorresponding connector 230 of the controller device 200 to allow aprocessor 240 (FIG. 11A) of controller device 200 to control theelectronic cutting machine 610 directly at a low level (e.g., at a motordriver level). In this way, the electronic cutting machine 610 may bereduced in cost and the high-powered processor, design capabilities, anddigital content storage may be housed within the controller device 200to allow reduced cost and more efficient use of resources. As a result,the electronic cutting machine 610 can receive a modular unit, such asthe controller device 200, for receiving processing capabilities todrive or control one or more components of the electronic cutter 610,such as motors and drivers. For example, by providing the digitalcontent storage within the controller device 200, the need to carryand/or manually plug in a large number of cartridges 510 is eliminated.Since the controller device 200 may include all of the user's digitalcontent, only the controller device 200 is needed to interface withelectronic cutting machine 610. Moreover, where the high-poweredprocessing is centralized with the snap-in controller 200, the cost ofthe electronic cutting machine 610 may be reduced.

Referring to FIG. 11C, in some implementations, the controller device200 provides a modular interface for multiple devices or machines. Thecontroller device 200 may be connectable (e.g., via a wireless networkor direct electrical communication, such as a USB connection) to one ormore external resources or devices 1180 that rely on the controllerdevice 200 to drive those devices. Exemplary devices include, but arenot limited to, three dimensional (3D) milling machines 1180 a, 3Dscanners 1180 b, 3D printers 1180 c, printers 1180 d configured forprinting on 3D surfaces, direct to garment printing machines 1180 e,pick and place automation and gantries 1180 f, laser cutters 1180 g,paper cutters 1180 h (such as the CRICUT® electronic cutting machine byProvo Craft & Novelty, Inc. of Spanish Fork, Utah), Fondant frostingcutters 1180 i, routers 1180 j, Wi-Fi dongles 1180 k, multimedia dongles1180 l, engravers 1180 m, and jewelry makers 1180 n. In someimplementations, the controller device 200 recognizes the type ofconnected machine or device and provides an appropriate user interfacefor controlling and/or communicating with the connected machine ordevice. By connecting to multiple machines or devices 1180, thecontroller device 200 may provide cross-machine or cross-platformsharing of content.

Referring to FIG. 11D, in some implementations, while providingprocessing capability for connectable devices, such as the electroniccutting machine 610, the controller device 200 includes only enoughmemory 250 (FIG. 11A) for storing and displaying information from acartridge 510 (e.g., FIG. 5) on the screen 112, for example, so that auser can select a glyph without an overlay or manual. In the exampleshown, the controller device 200 connects to a controllable machine,such as the electronic cutting machine 610, to control the connectedmachine. In some examples, the controller device 200 does not include apower source (e.g., battery), but rather obtains power from a device(such as the electronic cutting machine 610) receiving the controllerdevice 200. In some examples, the controller device 200 requires aconnected cartridge 510 to drive the electronic cutting machine 610,while in other examples, a cartridge 510 is not necessary.

FIG. 11E illustrates an example of the controller device 200 beingreceived by an embroidery machine 1102 (e.g., in a receptacle defined bythe embroidery machine 1102 having a connector for establishingelectrical communication with the received controller device 200). Insome implementations, the embroidery machine 1102 only relies on thecontroller device 200 to receive data, such artwork or stitch patterns,that is read and/or stored in memory by the embroidery machine 1102 toexecute one or more embroidery operations. In other implementations, theembroidery machine 1102 relies on the controller device 200 to controlone or more components of the embroidery machine 1102, such as motorsand/or corresponding drivers, ancillary or auxiliary processors, etc, torun the embroidery machine 1102 and execute one or more embroideryoperations.

Referring to FIG. 11F, in some implementations, an interoperable system1105 includes one or more user interfaces 1110, one or more contentdevices 1120, an intermediary device 1130, and one or more controllablemachines 1140. In some examples, the user interfaces 1110 include thecontroller device 200 (snap-in or otherwise connectable (e.g., wireless)to machines), portable devices (e.g., hand-held personal digitalassistant (PDA), USB dongle, memory storage device, etc.) or executableuser interfaces 1150 (e.g., rich internet applications (RIA) 1150 a orsoftware design studios 1150 b) executable on a processor, such as acomputer 1160. The computer 1160 and/or RIA 1150 a may be incommunication with the Internet or a local network for obtaining contentand/or executable files (e.g., for creating designs with content). Theuser interfaces 1110 are modular components of the interoperable system1105, as are the content devices 1120, intermediary device 1130, andcontrollable machines 1140. The content device 1120 may be a cartridge510 or other memory device, such as a USB dongle 1170 that providescontent (such as artwork, cutting patterns, etc.) which is received byone of the user interface devices, such as the controller device 200 orthe personal computer 1160, or the intermediary device 1130. Theintermediary device 1130 communicates with one or more of thecontrollable machines 1140, such as the electronic cutting machine 610and/or other cutting machines tailored to cutting specific types ofmedia (e.g., paper, vinyl, frosting, cloth, wood, embroidery, etc.). Insome examples, the intermediary device 1130 is one of the controllablemachines, such as the electronic cutting machine 610.

FIG. 12 is an example of a system 1200 including a controller device1210 powered by at least one battery 1220. The user/operator 1230 mayinterface with the controller device 1210 by way of a display andcontrols, which may be at least partially integrated into a touch-screendevice and/or using user input buttons. A memory device such as acartridge 1240 may be used to provide and/or validate ownership of thevarious artworks for use with the controller device 1210. In an example,the cartridge may be embodied as a proprietary interface cartridge, suchas is used with the CRICUT® electronic cutting machine. However, thememory device/cartridge 1240 may be embodied as various memory storagetypes that may be connected to the controller device 1210 through anadapter. For example, the controller device 1210 may include a singleconnector for use with various types of memory devices where an adapteris configured to connect with the controller device 1210 and the desiredtype of memory device.

The controller device 1210 may also be connected with a computer 1250and a peripheral device 1260 (shown here as a CRICUT® electronic cuttingmachine). The general connection of controller device 1210 andperipherals may be accomplished using commonly available interfaces suchas USB, FireWire, serial (e.g., RS-232), etc. The controller device 1210may also be networked using wired and/or wireless technology tocommunicate with a variety of peripheral devices (e.g., printers,cutters, etc.) and/or computing devices (e.g. personal computers,laptops, smart-phones, etc.).

The controller device 1210 may be connected with other software that mayrun on computer 1250. In this example, the controller device 1210 may beconnected to a design software application 1270 executed on a processor(e.g., of a computing device), such as the CRICUT DESIGNSTUDIO®software, that may allow sharing of content, for example, designs andartwork. Moreover, the user may transfer designs from the controllerdevice 1210 to design software application 1270 and vice versa.

In general, the controller device 1210 may be used to connect withvarious peripherals, other computing devices, networks, etc. to allowthe user to select content (e.g., artwork), create designs (e.g.,selecting, arranging, modifying content), as well as realize the designsby printing, cutting, etc.

FIG. 13 is an example of a block diagram 1300 of a controller device100, 200, 1210. A rechargeable battery 1310 may power an intelligentpower switch 1320 to provide power to the controller device 100, 200,1210. Voltage regulators 1330 may provide the necessary power to aprocessor 1340 and to the other systems. The processor 1340 may be usedto centrally manage the controller device 100, 200, 1210 and interfaceswith the On/Off buttons and navigation buttons 1342, internal memory1344, touch screen display 1346, cartridge dock 1348, externalconnectors such as a USB connector 1350.

The system configuration shown is an exemplary implementation of acontroller device 100, 200, 1210. Alternative configurations are alsounderstood to be available and the general arrangement of the componentsis not limiting. Moreover, certain components may be separated from thecontroller device 100, 200, 1210 or integrated with other components. Inan example, the internal memory 1344 and USB system 1350 may beintegrated with the processor 1340.

FIG. 14 is a second example of a block diagram 1400 of a controllerdevice 100, 200, 1210. A processor 1410 may be connected to an LCDdisplay 1420 for user output and a touch panel display 1422 for userinput. The touch panel display 1422 may also include a display backlight1432 and touch panel controller 1434 for determining the contrast,brightness, color, etc., of the LCD display 1420. The touch panelcontroller 1434 may also determine the position of a stylus or theuser's finger on the LCD display 1420. This can be used for selection,dragging, and other operations as configured by software running on theprocessor 1310. The processor 1410 may also include a debug port 1412(e.g., serial, JTAG, etc.).

The controller device 100, 200, 1210 may also include a USB deviceinterface 1442 and a USB host interface 1444 in communication with theprocessor 1410. These interfaces 1442, 1444 may be used to connect witha personal computer and various peripherals.

The processor 1410 may also include a Flash memory 1450 for persistentstorage and a SDRAM memory 1452 for dynamic storage. The Flash memory1450 may contain operating system software and application software.These may include a boot loader, operating system kernel, and devicedrivers to interface with hardware of the controller device 100, 200,1210. The SDRAM memory 1452 may be used for dynamic memory purposes whenrunning programs such as storing dynamic data for use of the operatingsystem and/or applications.

The controller device 100, 200, 1210 may also include a data securitymodule 1454 that may be used for storage of encryption keys andproduction data such as serial numbers. The data security module 1454may be configured so that memory addresses may be written to only onceto avoid re-writing of security information. Moreover, the data securitymodule 1454 may need to be accessed using an encryption key and maybecome unusable if the incorrect security key is sent to the datasecurity module 1454 more than, for example, three consecutive times.The security information stored in the data security module 1454 may beused, for example, to validate the user's ownership of content.Moreover, the content may be stored on the controller device's Flashmemory 1450 in an encrypted form where the encryption key is stored inthe data security module 1454.

The controller device 100, 200, 1210 may include one or more cartridgedocking locations 1460 allowing the user to plug memory devicescontaining content into the controller device 100, 200, 1210. Thecartridge docking locations 1460 may include specialized and/orproprietary connectors or they may be standard connectors (e.g., SD cardslots). The controller device 100, 200, 1210 may also include LED statusindicators 1470 such as a charge status indicator 1470 a used forindicating to the user that a connected battery 1496 is fully charged,or has a low charge. A power indicator 1470 b may show the user that thecontroller device 100, 200, 1210 is powered up and ready for use.

User buttons 1480 may include a power button 1480 a (e.g., to turn thecontroller device on, off, or sleep mode), and a reset button 1480 b maybe used to reset the controller device 100, 200, 1210. Other userbuttons 1480 may include a zoom button 1480 c, pan button 1480 d, andhome button 1480 e. The zoom button 2480 c may be used to zoom in theLCD display 1420 and touch panel display 1422 to customize the view. Thepan button 1480 d may be used to allow the user to pan through the LCDdisplay 1420 and touch panel display 1422. For example, the user maypress the pan button 2480 d and then drag their finger or a stylusacross the touch panel display 1422 to pan. The home button 1480 e maybe used to take the user back to the home screen of the controllerdevice 100, 200, 1210.

A serial EEPROM 1484 may be used to store non-cryptographic informationfor use by the software. An Analog to Digital converter 1490 (ADC orA/D) may be used to measure physical hardware attributes such as voltageand/or current related to electrical components. The ADC 1490 may beused, for example, to check the charge status of the battery 1496. Apower system 1492 may take outside current through an AC adapter 1494,which may be configured to use AC or DC input. The power system 1492 maycontrol the battery charging and discharging. The battery 1496 may beconfigured as a lithium ion battery (Li-ion) and may have a separatebattery charging circuit 1498. The power system 1492 may also beconfigured to use external power, when available, rather than thebattery 1496 to power the controller device 100, 200, 1210.

FIG. 15 is an example of a software system 1500 for use with thecontroller device 100, 200, 1210. The software system 1500 may includegenerally, an operating system layer 1520 and an application layer 1530that interact with hardware 1510 (e.g., as generally shown in FIG. 24).

The operating system layer 1520 may include a boot loader 1522 and anoperating system kernel 1524 for generally allowing access to thehardware 1510 and to run software. The operating system kernel 1524 mayinclude standard device drivers 1526 and controller device specificdrivers 1528 for programmatically interfacing with the software andhardware systems.

The application layer 1530 may include an application library 1532, aGUI toolkit 1534 (e.g., for using the LCD touch screen), and acryptographic library 1536 (e.g., for security purposes). Theapplication layer 1530 may also include an application manager 1538 thatallows the user to select which application to run in the foreground.Applications may include an application for designing content layouts,such as the CRICUT® application, and interfacing with an electroniccutting machine 610 (e.g., the CRICUT® electronic cutting machine) forcutting content. Another application may include a screen printingapplication (e.g., YUDU™ by Provo Craft & Novelty of Spanish Fork, Utah)that enables the user to design content layouts for screen printing.Other applications may include an image viewer/printer application wherea user may download images to the controller device and may then crop orotherwise modify the images for printing. Other applications may be usedfor design and control of various peripheral devices such as inkjetprinters, screen printers, automatic rhinestone setters, sewingmachines, direct to garment printers, etc.

FIG. 16 provides a schematic view of an exemplary user interfaceapplication selection screen 1600. The user may make a selection to usea design software application, such as CRICUT® designer, an imageviewer, or adjust the settings for the controller device 100, 200, 1210.The design software application may be used to create content layoutsand/or to realize the layouts by controlling an electronic cuttingmachine 610 to cut out content. The image viewer may allow fordownloading images (e.g., photos) to the controller device 100, 200,1210, modifying them (e.g., cropping, framing, etc.) and printing theimages to a printer peripheral. The settings allow the user to customizethe controller device 100, 200, 1210 to their liking, with features suchas LCD brightness, and customization of each of the applications.

FIG. 17 provides an exemplary arrangement 1700 of operations of a methodfor cartridge ownership verification. The method for cartridge ownershipverification may be executable on a processor 240 of the controllerdevice 200 (FIG. 11A), a computer 710 in communication with thecontroller device 200 (FIG. 9), and/or a peripheral, such as theelectronic cutting machine 610 in communication with the controllerdevice 200 (FIG. 9). To determine ownership of a cartridge 510 (see FIG.5) and the digital content therein, the controller device 200 may querythe cartridge 510 to determine whether the cartridge 510 is owned byanother, and if it is not, the controller device 200 may pair thecartridge 510 to the controller device 200 to assert ownership. In someexamples, once the cartridge 510 is paired to a particular controllerdevice 200, the cartridge 510 digital content may not be paired toanother controller device 200. However, the cartridge 510 and thedigital content therein may still be used when directly connected to anelectronic cutting machine 610 (see FIG. 6).

Operations of the cartridge ownership verification method includedeciding 1710 to cut a glyph on an electronic cutting machine 610. Whenthis happens, the controller device 200 may decide whether the user ownsthe particular digital content associated with the glyph, which may bepart of a set of glyphs stored in a cartridge 510 (or a memory device incommunication with the controller device 200). Operations furtherinclude determining 1712 which cartridge(s) 510 is associated with theglyph, which may include identifying each cartridge 510 associated withthe content of the design to be cut and obtaining a cartridge identifier(e.g., serial number) for each identified cartridge 510. This may bedetermined using metadata for the glyph. The glyph metadata may beassociated directly with each glyph of the a design, accessed from thememory 250 of the controller device 200, and/or accessed from anexternal source in communication with the controller device 200. Forexample, when the user places a glyph on a digital cutting mat, theidentification for the glyph may include which cartridge(s) 510 (andcorresponding cartridge identifier(s)) the glyph is associated with.

Operations of the cartridge ownership verification method includedetermining 1714 whether the identified cartridge 510 is owned by theuser. This may be performed by searching a list of owned cartridges 510.The list of owned cartridges 510 may be stored in memory 250 of thecontroller device 200. If the cartridge 510 is owned by the user,operations of the cartridge ownership verification method includeperforming 1724 or allowing execution of a cutting operation, forexample, on an electronic cutting machine 610 in communication with thecontroller device 200. If the cartridge 510 or digital content of theglyph is not owned by the user, operations of the cartridge ownershipverification method may include prompting 1716 the user to insert theappropriate cartridge 510 into the controller device 200 or offering theuser to purchase of a usage right of each identified cartridge 510having a cartridge identifier absent from the list of owned cartridges510, which may be stored in the memory 250 of the controller device 200.Once usage rights have been purchased, operations include allowingexecution of the cutting operation on the electronic cutting machine610.

Prompting 1716 the user to insert the cartridge into the controllerdevice 200 may be done with a direct connection of the cartridge 510 tothe controller device 200 (see FIG. 5) or it may be done using anadapter (see FIG. 3B). Alternatively, the connection may be doneremotely by connecting the cartridge 510 to the electronic cuttingmachine 610 and then connecting the controller device 200 to the sameelectronic cutting machine 610, creating a communication path without adirect connection. In another alternative scenario, the user maydownload the digital content, for example, using the Internet, andtransferring the digital content to the controller device 200.

Operations of the cartridge ownership verification method furtherinclude pairing 1718 the connected cartridge 510 with the controllerdevice 200. The pairing 1718 may also be referenced with respect to FIG.19. In attempting to pair the controller device 200 with the cartridge510, the controller device 200 checks whether the cartridge 510 isalready paired with a controller device 200. This may be done by readinga memory location 1914 or locations in the memory 514, 1900 of thecartridge 510 for a serial number associated with a controller device200. If the memory location 1914 does not contain a serial number for acontroller device 200 then it is deemed to be unpaired. In this case,the controller device 200 writes its serial number to the assignedmemory location 1914 in the memory 1900 the cartridge 510 to assertownership and pairing of the controller device 200 with the cartridge510. This allows the specific controller device 200 that has written itsserial number to have full access and control of the digital contentwith the paired cartridge content while preventing other controllerdevices 200 from using the content from the paired cartridge 510. Inthis way, management of the digital content is controlled.

Operations of the cartridge ownership verification method furtherinclude determining 1720 whether pairing of the controller device 200with the cartridge 510 was successful or not. The pairing was successfulwhen the cartridge 510 was not previously paired and the writing of thecontroller device's serial number to the cartridge 510 was successful.If pairing is successful, operations of the cartridge ownershipverification method include performing 1724 a cutting operation, forexample, on an electronic cutting machine 610 in communication with thecontroller device 200. If pairing was not successful, for example wherethe cartridge 510 was already paired with a different controller device200 or the writing of the serial number was not successful, operationsof the cartridge ownership verification method include informing 1722the user of the pairing failure.

In informing 1722 the user of the pairing failure, the user may beinformed the reason for the pairing failure, which may include that thecartridge 510 was already paired with another controller device 200.Moreover, additional information may be provided to the user related tothe failure. In some examples, where the pairing of the controllerdevice 200 with the cartridge 510 also includes writing of metadataabout the pairing to the cartridge 510, the owner's name may also beincluded. This may be helpful to determine which controller device 200has been paired with the cartridge 510, and who the owner is of thatcontroller device 200. For example, if the user attempts to pair acartridge 510 already paired with a controller device 200 owned by“Betty”, the error message may include such metadata pulled from thepaired cartridge 510 to explain the pairing failure as “Pairing failed.The cartridge is already paired to Betty's controller device”.

FIG. 18 provides an exemplary arrangement 1800 of operations of a methodfor pairing a cartridge 510 with a controller device 200. Whenperforming a pairing operation, the controller device 200 may not onlydetermine whether the cartridge 510 is already paired with anotherdevice, but the controller device 200 may also validate the authenticityof the cartridge 510.

Operations of the method for pairing include establishing 1810communication between the controller device 200 and the cartridge 510.In some examples, the cartridge 510 is electrically attached to thecontroller device 200 allowing communication therebetween. In otherexamples, the controller device 200 establishes a wireless connectionwith the cartridge 510 for communication therebetween. Operationsinclude reading 1812 a cartridge identifier from the cartridge 510. Insome examples, the controller device 200 reads a serial number, modelnumber, and/or unique identifier for the cartridge 510 and its digitalcontent. The cartridge identifier may serve as a unique identificationof the cartridge 510 and may also include version information,manufacture date, and data structure types.

Operations of the method for pairing further include validating 1814 thecartridge 510 as genuine. Validation may be executed on the controllerdevice 200 and can include a variety of techniques, including contentverification and/or an encrypted verification method. Contentverification is discussed below with respect to FIG. 20 and may includereading digital content from the cartridge 510 and comparing it withknown content stored on the controller device 200. Alternatively, thecartridge 510 may contain encrypted data that the controller device 200may read and verify the authenticity through a public/private keyinfrastructure.

Operations of the method for pairing include determining whether thecartridge 510 is already paired (e.g., with another controller device200). The controller device 200 may determine the pairing status of thecartridge 510 by reading a memory location of the cartridge 510 forpairing information. If the cartridge 510 is already paired, operationsof the method for pairing include informing 1818 of a pairing failure.For example, the controller device 200 may provide a message to the userinforming them that the cartridge 510 cannot be paired with theircontroller device 200 because the cartridge 510 is already paired withanother controller device 200. If the cartridge is not already paired,operations of the method for pairing include writing 1820 a serialnumber of the controller device 200 to memory 1900 the cartridge 510(FIG. 19) to pair the controller device 200 to the cartridge 510. Theserial number of the controller device 200 may be written to an assignedmemory location in the cartridge 510, such as a controller device serialnumber memory portion 1914 (FIG. 19) so that later checks for pairingwill read from the known location. The controller device serial numbermemory portion 1914 can be configured as write-once and read-many, so asto allow only one pairing operation. In addition to writing thecontroller device serial number the cartridge 510, additional metadatasuch as the time and date of the pairing may be written to memory of thecartridge 510 as well. Other information such as the name of the userand/or information about the controller device 200 may be written to thecartridge 510 to provide more meaningful error messages and to determinecartridge ownership if the cartridge 510 is queried.

Operations of the method for pairing further include storing 1822 thecartridge identifier in memory of the controller device 200 (e.g., in alicensing file). This cartridge identifier may then be used to laterdetermine ownership of the cartridge 510 by the controller device 200without requiring the cartridge 510 to be present. The controller device200 may store information indicating the ownership of many cartridges510 and the digital content stored therein. In addition to the cartridgeidentifier, the controller device 200 may also store the actual digitalcontent from the cartridge 510. This digital content may be read-outfrom the cartridge 510 or it may be already stored on the controllerdevice 200 awaiting activation by pairing of the cartridge 510.Alternatively, the user may download the digital content, for example,from the Internet via a rich internet application.

FIG. 19 provides a schematic view of cartridge memory 1900 interfacingwith a controller device 200. The cartridge memory 1900 may be embodied,for example, as FLASH memory, EEPROM memory, ROM memory, or the like.The cartridge memory 1900 may contain a cartridge content memory portion1910 that may include the digital content and metadata. This maycontain, for example, the cutting paths, images, overlay information,keypad mapping information etc.

The cartridge memory 1900 may also contain a cartridge identifier memoryportion 1912, for example, at a predetermined memory location. Thecartridge identifier portion 1912 may be programmed during manufactureof the cartridge 510, for example, at a factory. The cartridgeidentifier memory portion 1912 may include a unique identifier for thecartridge 510 including a serial number. When performing a pairingoperation, the controller device 200 may read the cartridge identifiermemory portion 1912 to determine what cartridge 510 and digital contentwill be owned by the user.

The cartridge memory 1900 may also contain a controller serial numbermemory portion 1914, for example, at a predetermined memory location.The controller serial number memory portion 1914 contains the serialnumber of a controller device 200 after pairing with the cartridge 510.If no controller device 200 has been paired with the cartridge 150 thenthe controller serial number memory portion 1914 may be blank (e.g., allzeroes), or contain predetermined information (e.g., a code) indicatingthat the cartridge 510 has not been paired. The controller serial numbermemory portion 1914 is written to by a controller device 200 during apairing operation so that if other controller devices 200 attemptpairing they will know that the cartridge 510 has already been paired.

The cartridge memory 1900 may also contain a manufacturing data memoryportion 1916, for storing a date of manufacture, and other metadata.This may include the memory addresses of the data structures in thecartridge memory 1910, and other information useful to an electroniccutting machine 610 and/or a controller device 200.

Various methods may be employed to validate the cartridge 510 as agenuine cartridge including comparing the cartridge contents with aknown example of the cartridge contents. FIG. 20 provides an exemplaryarrangement 2000 of operations of a method for validating a cartridge510 as genuine. The method for validating a cartridge 510 illustrateshow to compare known glyphs with the cartridge glyphs for a match todetermine whether the cartridge 510 is genuine. The cartridge validationmay be used, for example, during the controller device/cartridge pairingmethods to determine whether the cartridge 510 is genuine and should bepaired.

Operations of the method for validating a cartridge 510 include reading2010 a cartridge identification of the cartridge 510. In someimplementations, the controller device 200 reads the cartridgeidentification, which allows the controller device 200 to correlate thecartridge's digital content with known digital content. The operationsalso include determining 2012 a glyph to test. The controller device 200may hold a copy of the cartridge's digital content internally, or asubset of the cartridge's digital content. The controller device 200 maythen select a glyph to test from internal memory storage 250, 1344 or atrusted external source in communication with the controller device 200(e.g., memory device or rich internet application) that is also includedin the cartridge 510. The operations include reading 2014 the selectedglyph from the controller device's pre-stored content or trustedexternal source, as a master glyph and reading 2016 the selected glyphfrom the cartridge 510, as a test glyph. Operations of the method forvalidating a cartridge 510 further include comparing 2018 at least aportion the master glyph to a corresponding portion of the test glyphfor a match. In some examples, the comparing operation 2018 includescomparing one or more Bézier curves of the each glyph. In vectorgraphics, Bézier curves may be used to model smooth curves that can bescaled indefinitely. If the master glyph matches the test glyph as thesame, operations include validating 2024 the cartridge as genuine. Theuser may also be informed that the cartridge 510 is a genuine cartridge.Once validated, the controller device 200 can write a controller deviceserial number to the controller device serial number memory portion 1914of the cartridge memory 1900. The If the master glyph does not match thetest glyph, operations include invalidating 2022 the cartridge as notgenuine, for example, because the master glyph did not match the testglyph. The user may then be informed that the cartridge 510 is notgenuine and that pairing of the cartridge 510 to the controller device200 has failed.

Once paired with the cartridge 510, the controller device 200 mayreceive all or a portion of the content (e.g., content libraries) storedon the cartridge 510 (e.g., in the cartridge content data memory portion1910). The controller device 200 may execute a script that reads thecontent from the cartridge content data memory portion 1910 of thecartridge memory 1900 and stores the read content in memory 250 of thecontroller 200. The script may update existing store content on thecontroller device 200 and/or access an external source (e.g., theInternet) for updated or additional content associated with thecartridge 510. For example, the cartridge 510 may only hold a core setof content libraries; however, upon pairing or activation of thecartridge 510 with the controller device 200, the controller device 200may access or receive additional content associated with the cartridge510 (e.g., bonus content) or ancillary content (e.g., content from arelated cartridge 510). This allows for receipt of promotional contentand/or content updates to the controller device 200. The controllerdevice 200 may access a network or the Internet through a WiFi dongleconnected to the controller device 200. In some implementations, theWiFi dongle is integrated or associated with the cartridge 510.

In some implementations, the controller device 200 allows a user toaccess and use content associated with a paired and validated cartridge510. For example, bonus content associated with the cartridge 510 and/orcontent from another cartridge 510 associated with the paired andvalidated cartridge 510 may be made accessible and usable by the user onthe controller device 200. For example, a user buys cartridge A andpairs cartridge A with his/her controller device 200, which subsequentlyvalidates cartridge A as valid. Cartridge A is associated with bonuscontent (e.g., which may not have fit on cartridge A), which the usercan now access (e.g., via the Internet and/or via another cartridge).Cartridge A is also associated with cartridges B and C for promotionalreasons. After pairing and validating cartridge A, the user can accessthe content of cartridges B and C (e.g., via the Internet and/or viaadditional cartridges).

FIG. 21 provides an exemplary arrangement 2100 of operations of a methodfor cartridge ownership proxy. The controller device 200, through thepairing processes, may serve as a proxy to ownership of the digitalcontent stored on cartridges 510. For example, the user may pair acartridge 510 to the controller device 200 and then use the controllerdevice 200 to validate the content ownership without having to connect acartridge 510 (e.g., by electrical or wireless connection) to use thedigital content. In this way, the controller device 200 may serve as adigital juke box that stores the user's digital content.

Operations of the method for cartridge ownership proxy includeconnecting 2110 the controller device 200 with an external resource1180, such as an executable user interface 1150 (e.g., rich internetapplications (RIA) 1150 a or software design studios 1150 b (e.g.,CRICUT DESIGNSTUDIO®)) executable on a processor, such as a computer1160 (FIG. 11). The design software application 1150 b allows the userto create and cut designs using the associated electronic cuttingmachine 610. The operations include the external resource 1180 reading2112 a list of cartridge identifiers from the memory 250 of thecontroller device 200 to determine what digital content is owned by theuser. The operations further include the external resource 1180validating 2114 the cartridges 510 owned by the user. This validationallows the user to execute resource operations, such as cut operationson the electronic cutting machine 610, with the owned content. Thevalidation is not static, however, and if the controller device 200 isremoved from the external resource then the previously validatedcartridges 510 are no longer available for use via the proxy served bythe controller device 200.

In some implementations, the external resource 1180 receives a resourceoperation for executing a design 2805 on the external resource 1180. Thedesign 2805 includes content associated with at least one cartridge 510.The external resource 1180 identifies each cartridge 510 associated withthe content of the design 2805, obtains a cartridge identifier for eachidentified cartridge 510, searches the memory 250 of the controllerdevice 200 for the cartridge identifier of each identified cartridge510, and allows execution of the resource operation after each cartridgeidentifier of each identified cartridge 510 is located in the memory 250of the controller device 200.

Operations of the method for cartridge ownership proxy include theexternal resource checking 2116 whether the controller device 200 thatvalidated the digital content is still connected. If the controllerdevice 200 is still connected, control loops back to the operation ofchecking 2116 the connection and the user may continue to cut using thevalidated cartridges 510. However, if the controller device 200 isremoved, operations include the external resource invalidating 2118 thecartridges 510 owned by the user, but only as it relates to the externalresource. That is to say, when the controller device 200 is unpluggedfrom the external resource, the digital content whose ownership wasproxied by the controller device 200 is no longer available for use bythe external resource. In this way, the user may carry the controllerdevice 200 and use it as a proxy to ownership of the paired cartridges510 and their associated digital content.

FIG. 22 is an example of a display rendering data store system 2200. Thedisplay rendering data store system 2200 allows for the rendering ofglyphs on the screen 112 (see FIG. 1). In use, the image or group ofimages shown on screen 112 may be rendered directly from the digitalcontent (e.g., from a cartridge 510), or it may be stored, for example,as an image. The use of rendering from content or a bitmap may bedetermined by availability and processing time. For example, where thescreen 112 is not stored as an image.

In general, the rendering of a virtual overlay for the screen 112 may beaccomplished by translating cutting and/or printing instructions fromthe cartridge 150 into a graphic form, or the graphic form may bepre-stored or cached in the controller device 200. The overlay maycomprise a series of glyphs that represent the content. The user maythen select each glyph for use and positioning on a mat. The images thatare displayed from each glyph may be generated in a number of ways.

In some examples, the renderings may be loaded directly from a cartridge510 that was attached to the controller device 200 during the pairingprocess. After being rendered the first time (which takes time to decodethe content and render to the screen 112), the keys may be stored intheir rendered state so that the next time the images are accessed theywill quickly appear on a keypad (e.g., displayed on the screen 112). Inadditional examples, renderings of each glyph may be delivered to thecontroller device 200 as part of a library update and stored as an imagefor quick rendering. Alternatively, some glyph images may be deemednon-descriptive when rendered from the cartridge 510. Thesenon-descriptive glyphs may be replaced with pre-rendered images thatwill be delivered through a library update. Examples of non-descriptivekeys include feature keys (e.g., shift, space, etc.). Shift and featurekeys may change the display when activated. For example, when activated,the new keys/glyphs are shown that relate to the feature or shift key.For example, when “shift” is pushed, the keys may change from lower caseletters to upper case letters.

Typical image formats may include, for example, bitmaps (e.g., BMP, DIB,PBM) and/or compressed formats that are easily expanded to bitmaps JPEG,TIFF, PNG, and GIF, rather than vector graphics. These types of imageformats may be used over vector graphics to avoid the processor cost ofrendering the vector graphics to the device. In order to speed updisplay of the glyphs on the display, the pre-rendered glyphs may bestored in a cache or data store and pulled on demand for display on thescreen 112.

As shown in FIG. 22, a rendering data store 2210 may be a non-volatilememory that stores rendered glyphs or complete overlays for use with thescreen 112. The software operating in controller 200 may first check therendering data store 2210 to determine if a glyph or overlay has alreadybeen rendered prior to rendering it from cutting instructions (e.g.,digital content stored on the cartridge 510 or in the controller device200). In checking the rendering data store 2210, the process ofconverting the cutting instructions into a rendered graphic may beeliminated. In so doing, the amount of CPU overhead, and the time priorto displaying the rendered graphic may be reduced.

In general, the rendering data store 2210 may be updated in a variety ofways. In a first example, the digital content from the cartridge 510 maybe read and the cutting instructions translated into pen instructionsfor rendering in a graphical manner suitable for display on the screen112. This translation and rendering operation may be done on contentdirectly from the cartridge 510 or it may be done using a local copy,which may be pre-loaded onto the controller device 200. Alternatively,the rendering data store 2210 may be updated from a network 2220, suchas the Internet. In this way, when new cartridges 510 are released, orif existing overlays are modified, the rendered glyphs and overlays maybe updated remotely. In another example, a factory 2230 may pre-loadrendered overlays and glyphs into the rendering data store 2210 prior toshipment for existing cartridges 510.

In general, the translation of cutting instructions to a renderedgraphic may include virtually tracing the cutting path over a virtualgrid. Where the cutting path intersects a pixel the pixel may be markedas “on”. In another example, the final rendered graphic may be optimizedfor display on the screen 112, which may include, for example,anti-aliasing, and re-sampling after scaling operations are performed.For example, where the glyph has a “hover” feature, the size of theglyph may be temporarily enlarged for the purpose of giving the user anenlarged view for more detail. Because the glyph is resized, certainoptimized views of each glyph may be stored to provide the highestquality view.

FIG. 23 provides an exemplary arrangement 2300 of operations of a methodfor display rendering from a cartridge 510. In this example, thecartridge 510 is used as a data source. However, it should be understoodthat the data source may be stored within the controller device 200, ordownloaded, for example from an online store.

Operations of the method for display rendering include reading 2310 thecartridge 510 for the digital content data. This data may includecutting paths for artwork stored thereupon. Cutting instructions may beread and the corresponding cutting paths may be treated, for example, asvector graphics. The data may also include information about mapping ofthe glyph or artwork to an overlay, and may also include graphicalinformation used for printing or used for display.

The operations include rendering 2312 each glyph or separate item forcutting (e.g., on the electronic cutting machine 610). The rendering maybe accomplished by resizing the cutting paths onto a virtual bitmap of aparticular resolution. Because the resolution of the screen 112 (e.g.,LCD Display 1420) is fixed, the rendering may be optimized for thatparticular resolution depending on what the rendering will be used for.For example, for a virtual overlay keypad, each glyph may have apredetermined size and take up a predetermined number of pixels. In thatexample, the cutting path may be optimized for that number of pixels.Alternatively, for example where a zoom image or larger hover image isdesired, the area or number of pixels may be adjusted and the cuttingpaths may be rendered for the desired size bitmap. Both the virtualoverlay rendered image and the hover images may be stored for later use.

In some implementations, the content of the read cartridge includesmultiple files for each glyph, where each associated file containsgraphics data for rendering of the glyph at different resolutions orsizes. In such implementations, the rendering operation 2312 includesselecting the graphics data file corresponding to the appropriaterendering for display. For example, each glyph can have first, secondand third associated graphics data files for rendering correspondingfirst, second and third images of the same glyph. The first image mayhave a level of image detail for a relatively small image size for a keyof a keypad overly, the second image may have a level of image detailfor a relatively larger image size for a selected or pass-over image,and the third image may have a level of image detail for a full-screenimage size for display during zooming operations of that glyph/image.

In other implementations, rendering operation 2312 includesextrapolating image detail from a master graphics data file for acorresponding glyph for rendering the corresponding image at anappropriate size (e.g., relatively small for a key of a keypad overly,relatively larger for a selected or pass-over image, and a full-screensize). In some implementations, cutting paths or image lines within athreshold distance of each other are merged into one cut path or imageline for glyphs below a threshold size (e.g., for display and/orcutting). The extrapolation operation may include selecting a thresholdamount of Bezier lines that form the image.

The operations of the method for display rendering further includemapping and rendering 2314 each glyph on a virtual keypad overlay. Themapping of the virtual keypad overlay may be accomplished using mappingdata provided by the cartridge data as to which glyph corresponds towhich key, and the shifted or function keys. The mapping data mayinclude an XML file or data structure that associates glyphs with keypadpositions of a keypad template. The mapping and rendering operation 2314may include reading the XML file or data structure to obtain glyphlayout information and rendering each glyph to a key location of thekeypad template according the glyph layout information. The mapping maybe transferred directly to the virtual overlay or the mapping may bemodified to fit a particular purpose. For example, if the mapping is tobe the same as the physical overlay, then the mapping on the virtualoverlay will match the physical overlay. For an example of a physicaloverlay, see U.S. patent application Ser. No. 11/457,415, filed Jul. 13,2006, to Workman et al, which is hereby incorporated by reference in itsentirety. However, if the mapping is changed to provide larger but fewerglyphs on each screen, the mapping may be changed to provide multiplepages (e.g., paging) of the overlays, in which case the mapping willchange to provide for page changes in the virtual overlay. Also, someglyphs may be mapped to multiple keys of the keypad, so as toaccommodate a relatively larger rendering of the glyph.

The operations also include mapping 2316 each glyph to the virtualoverlay touch screen location. The mapping of each glyph and its bordermay be mapped to the hardware level of sensors of the touch panel 1430(see FIG. 14). For example, where each pixel is sensitized for touchthen each pixel residing in the glyphs region will be sensitive to touchfor selection. In some examples, the mapping operation 2316 uses thekeypad template to map each glyph to regions of the touch screen 112.

The operations of the method for display rendering further includesaving 2318 the rendered and mapped overlay information in the renderingdata store 2210 (see FIG. 22). Once the rendering and mappings arecomplete, the rendered overlays (and if desired the scaled up hoverimages) may be stored in rendering data store 2210 for future use.Because the work has already been performed to render the glyphs, theimages will appear on the screen faster than if they were renderedon-the-fly using the cutting path instructions.

FIG. 24 is a schematic view of a cartridge data store 2400. A cartridgecontent data store 2410 may be embodied as a non-volatile memory such asa FLASH memory or a ROM. The cartridge content data store 2410 may storecutting instructions read from the cartridge 510, or may be programmedwith all or most cartridge content from the factory 2230 (see FIG. 22).Alternatively, the cartridge content data store 2410 may be updated withthe actual data contents of the read cartridge 510. This may happen whena subsequent cartridge 510 is released after the cartridge content datastore 2410 has been programmed at the factory 2230 and the cuttinginstructions are not already present. Alternatively, the cartridgecontent data store 2410 may be updated from a network 2220 (FIG. 22),such as the Internet. When the user updates the controller device 200,the cartridge content data store 2410 may be updated with new content.The cartridge content data store 2410 also acts as a repository for theuser to browse content that the user may not already own. In this case,the user may view and design with the content but not cut with it untilthey have the rights (e.g., through cartridge purchase and/or onlinepurchase).

Referring to FIGS. 25A-25C, welding is a process of connecting theoutside perimeters of two or more images 2510, 2520 to form a new image2540. FIG. 25A is an example of first and second glyphs or images 2510,2520 that the user desires to be welded (e.g., merged together inappearance). In the example shown, the first glyph 2510 is a circle, andthe second glyph 2520 is a square. FIG. 25B illustrates an example ofthe two glyphs 2510, 2520 overlaid for welding or merging. The user maymove the first and second glyphs 2510, 2520 into positions where thereis at least one overlapping region 2530. The overlapping region 2530 isnot desired to be cut because it would create three separate pieces,rather than a single piece (the resultant of the welding operation).Thus, the user may choose how to weld or merge the first glyph 6510 andthe second glyph 6520 together. FIG. 25C is an example of the completedwelded or merged glyphs 2510, 2520 as a single resultant glyph 2540. Thetwo separate glyphs 2510, 2520, are replaced by the single resultantglyph 2540 having a single cut path thereabout. The cutting path removesthe overlapping area 2530 (see FIG. 25B) that would have created anawkward third piece if no welding or merging was performed.

To determine the overlapping area 2530 and merge the outer cutting pathsof the first and second glyphs 2510, 2520, the controller device 200 maydetermine the outer cutting path for each glyph 2510, 2520, and thendetermine the overlapping area 2530. Where the cutting path around thefirst glyph 2510 intersects the cutting path around the second glyph2520, the two cutting paths are merged at those points and the innercutting path(s) is not taken. In the example shown, there are twointersections of the cutting paths for the first glyph 2510 and thesecond glyph 2520. The common or overlapping area(s) of the first glyph2510 and the second glyph 2520, which are not cut are bounded by theoverlapping area 2530. The cut paths for the welded images 2510, 2520may be reviewed and identified as either a boundary or webbing. If thecut path is considered “webbing” (e.g., cut paths that are internal tothe design) then they are ignored and not cut. If the cut paths areboundary cut paths and do not intersect another boundary, then they arecut as they would normally be cut. If the cut paths are boundary cutpaths and do intersect another boundary, then the two lines are joinedso that the overlapping regions 2530 defined by the two boundaries aremade into one region.

FIG. 26 provides an exemplary arrangement 2600 of operations foradjusting settings of an electronic cutting machine 610 using acontroller device 200. The controller device 200, when connected to theelectronic cutting machine 610, may have control over variousconfigurable aspects of the electronic cutting machine 610. For example,the user may adjust the settings manually through the controller device200 or the user may choose to have the controller device 200 configurethe electronic cutting machine 610 automatically.

In some implementations, the user may select an “adjust settings” dialog2610 on the controller device 200. The user may then be presented withat least two options, which may include a manual settings option 2620and an automatic settings option 2630. The manual settings option 2620allows the user to manually setting various electronic cutteradjustments, such as cutting speed 2622, cutting pressure 2624, cuttingheight 2626, and multi-cut 2628. The automatic settings option 2630allows the user to choose to have the controller device 200automatically select the settings for the electronic cutting machine 610for a particular cutting job. In some implementations, the electroniccutting machine 610 determines 2632 the material properties of the mediato be cut (e.g., the weight and thickness of paper loaded in theelectronic cutting machine 610) or uses user defined settings for thecutting media and then automatically selects 2634 the electronic cuttersettings for that material, for example, based on previously usedcutting settings, a settings algorithm (which may use the paper weight,paper thickness, model of the electronic cutting machine (e.g., todetermine hardware components), etc. The controller device 200 proceedsto set 2634 the various electronic cutter adjustments, such as cuttingspeed 2638, cutting pressure 2640, cutting height 2642, and multi-cut2644.

In some examples, the user may adjust the material properties so thatthe controller device 200 may adjust the electronic cutter settings tothat material. For example, if the user defines the material properties2632 as heavy card stock, the controller device 200 may query a databaseto determine 2634 the appropriate electronic cutter settings for thatmaterial. The database may include a mapping of various materials toappropriate cutter settings, or it may include a formulaic approachwhere each of the material properties are pulled from the database andapplied to a formula to determine the electronic cutter settings. In theexample where the user specifies heavy card stock, the electronic cuttersetting for speed 2638 may be set as a slower speed than regular craftpaper. Moreover, the pressure 2640 may be increased, as well as use ofthe multi-cut feature 2644 to traverse the cut path multiple times withthe blade to ensure proper cutting through the material. In this way,the user may add features to the design that includes the material typedesired and the controller device 200 may prompt the user for that typeof material, as well as configure the physical parameters of theelectronic cutting machine 610 to efficiently cut out that material.

FIG. 27 provides an exemplary arrangement 2700 of operations for usingthe controller device 200. In general, the controller device 200 is aportable device that works with an electronic cutting machine 610, suchas the CRICUT® Personal Electronic Cutter, to let the user create customshapes, letters, and phrases on the go, for later cutting and sharing.

Operations for using the controller device 200 include turning on 2710the controller device 200. The user may connect a power source to thepower connector 110 (FIG. 3A) or use the user selector button 320 (FIG.3A), for example, to toggle power on and off. When the controller device200 turns on the user may see a welcome screen (e.g., a splash screen).If the controller device 200 is turned on for the first time, an EndUser License Agreement (EULA) may be shown to the user, and when theuser agrees, they may be taken to an application launcher screen.

The operations for using the controller device 200 include viewing 2712an application launcher on the screen 112 to choose and launch anapplication to run on the controller device 200. The application may bea picture program (e.g., to manipulate and print pictures) or a devicespecific program, such as the CRICUT® Application. In this example, theuser selects the CRICUT® application to start a new design project.

The operations include selecting 2714 a project from the application.The project may be a saved (e.g., stored) project or a new project. Inthe example shown, the user selects a new project. The operationsinclude selecting 2716 a mat size, e.g., 6×12 or 12×12, and presenting2718 a main design screen where a virtual cutting mat is shown. The usermay add a glyph (e.g., an image representing the cutout from the digitalcontent) to the virtual mat. The operations further include selecting2720 a particular cartridge 510 to add content to the virtual mat. Thecartridge 510 may be considered a collection of glyphs for use. The usermay be presented with a list of all available cartridges 510 or only thecartridges the user owns for selection. The controller device 200 mayallow the user to preview and even design with the entire cartridgelibrary regardless of whether the user owns the cartridges 510 or not.In this way, the user may sample cartridges 510 before buying them.However, to cut an image using the controller device 200, the user mustfirst connect the cartridge 510 containing the desired image andauthorize the controller device 200 to cut it. This operation isdiscussed herein as “pairing” and only needs to be done once whencontroller device 200 remembers the cartridges that have been paired. Ingeneral, the controller device 200 can be configured to store thecontents of thousands of cartridges 510. Moreover, the controller device200 may have one or more cartridges 510 pre-loaded and authorized foruse.

The operations for using the controller device 200 also includepresenting 2722 the user with a glyph selector screen where each glyphis shown rendered on the screen 112. The user may have the option ofselecting the “option” and “shift” buttons to change the display. Thecontroller device 200 also may be configured to show the user all of theavailable glyphs in a particular cartridge 510. Thus, the user need nothave to carry the user manuals for each cartridge 510 to peruse thecontent stored on the cartridge 510. The controller device 200 allowsthe user to preview all of the digital content for each cartridge 510 onthe screen 112. Additionally, the user may hover over each glyph to viewan enlarged or zoomed view of the glyph to see it in more detail. Theuser may double-tap an image to select it and place it on the virtualmat to begin designing with it.

In a main design screen, the virtual mat allows the user to manipulateeach glyph. For example, the user may move the glyph around, alignglyphs with each other, show highlighted axes on the mat to allow foralignment, etc. The user may simply tap the glyph and drag it to a newlocation on the mat. There are also more precise positioning methodsdiscussed herein that allow for direct entry of X/Y coordinates forpositioning the glyph to a precise location.

The operations may include resizing 2726 a glyph. In someimplementations, highlight size buttons on the controller device 200(e.g., on the screen 112) allow the user to change the width and heightof the glyph. For example, arrow buttons (e.g., a spin control) may beused to change the size of the glyph where an “up” arrow makes the glyphlarger and a “down” arrow makes the glyph smaller. Alternatively, theuser may use direct input methods to set the height and width tospecific sizes (e.g., by entering a height and width into respectiveheight and width fields displayed on the screen 112).

The operations may include stretching 2728 the glyph. For example, thestretch function allows the user to change the aspect ratio of a glyphby entering the size they want in the height and width fields. The usermay also use the arrows to stretch an image. The operations may includeusing 2730 an advanced setting to adjust the glyph. For example, theadvanced features may include rotate, skew, flip vertical, and fliphorizontal, as well as other functions such as rotation and slant formodifying the glyph.

The operations may include grouping 2732 two or more glyphs. Forexample, the glyphs may be positioned on the mat in a desiredorientation with respect to each other. The glyphs may then be groupedtogether so that they may be moved, resized, rotated or otherwisemanipulated together as if they were a single glyph. In someimplementations, to select a group, the user selects the first glyph,then taps the “group” button, then selects the second glyph. With thetwo glyphs grouped together, whatever the user does to one glyph isautomatically applied to both glyphs. This is helpful, for example, whenmoving glyphs without having to be concerned about their relativepositioning. Moreover, when precision is desired, the user may not beable to see the entire mat view when zoomed into a particular locationfor alignment, and the group function allows any number of glyphs to bepositioned at the same time.

The operations may include zooming 2734 in on a particular area of thevirtual mat. In some implementations, to zoom, the user may hold a zoombutton (e.g., a virtual button displayed on the screen 112 or a physicalbutton on the controller device 200) and tap on an area of the screen112. The controller device 200 may then zoom in on the area tapped,which is displayed on the screen 112. The user may continue to hold thezoom button and tap different areas to zoom in on the desired location.In general, the image shown on the screen 112 will enlarge and center onthe spot that the user tapped.

The operations for using the controller device 200 may also includekerning 2736 glyphs, for example, so as to remove a portion of spacebetween adjacent glyphs in preparation for printing or cutting. In someimplementations, the user uses kern buttons (e.g., virtual buttonsdisplayed on the screen 112 or physical buttons on the controller device200) to manipulate the glyphs. Kerning may be used to position twoglyphs relative to each other, based on the spacing between them.Kerning allows for the determination of a gap or distance betweenglyphs.

The operations may include panning 2738 the virtual mat. In someimplementations, the user holds down a pan button (e.g., a virtualbutton displayed on the screen 112 or a physical button on thecontroller device 200) and drags the stylus 210 across the screen 112 topan the virtual mat and any images thereon.

The operations may include welding or merging 2720 two or more glyphs orimages together. In some implementations, the user selects multipleglyphs or images and presses a weld button (e.g., a virtual buttondisplayed on the screen 112 or a physical button on the controllerdevice 200) to weld or merge the multiple glyphs or images together intoa single resultant glyph or image having a single cut group.

The operations may include saving 2742 the project (e.g., storing theproject in memory 250 on the controller device 200 or a connected memorydevice). In some implementations, the user presses a “save” button(e.g., a virtual button displayed on the screen 112 or a physical buttonon the controller device 200), and is presented with a dialog window forselecting a project name and/or a location for storing the project. Aproject file can have a header that includes file attributes, such asfile name, size, creation date, last save date, etc. The project filecan also have data portion that includes glyph group, which lists all ofthe glyphs forming the design. The glyph group can include attributessuch as glyph ID and/or glyph name, cartridge name, and placementproperties. The placement properties may include mat location, size,rotation, skew, applied style, etc.

The operations for using the controller device 200 may also includeexecuting 2744 a cut operation on an electronic cutting machine 610. Forexample, if the user wishes to realize the project in tangible form, theuser may press a “cut” button (e.g., a virtual button displayed on thescreen 112 or a physical button on the controller device 200) and aconnected electronic cutting machine 610 cuts out the glyphs of theproject. The controller device 200 may prompt the user to place certaincutting media (e.g., paper) in the electronic cutting machine 610, forexample, having a particular color or weight.

In some implementations, the controller device 200 executes a conversionprogram that converts a visual design into a cuttable design forexecuting a cut operation on the electronic cutting machine 610. Theconversion program determines cutting paths for various image lines of adisplayed design to create a substantial similar cut design. Forexample, the conversion program may create cuts of various thicknessand/or depth to achieve a look substantially similar to the displayeddesign (e.g., a photo). The conversion program may merge cutting pathsor image lines within a threshold distance of each other into one cutpath or image line. The threshold distance may be set by the user ordetermined based on cutting material type and/or thickness. For example,for typical 20 lb. paper, the threshold distance may be 0.2 mm formerging multiple cutting paths corresponding to image lines into onecutting path. The conversion program may use Bezier lines forming thedesign to determine cutting paths. For example, each Bezier line of thedesign may be a cutting path and Bezier lines within a thresholddistance of each may be merged into one cutting path. The conversionprogram can select one of many Bezier lines within an image regionhaving a threshold size to represent all or part of that region. Aselected Bezier line can then be used as a cutting path having a setwidth (as by the width of a selected cutting tool) determined by theuser or the conversion program for a particular design region. In someimplementations, cutting paths are extrapolated from all or selectBezier lines. Some factors that may be considered during anextrapolation operation include cutting material (type, thickness, etc.)and cutting tool. The conversion program may also introduce over-cuts(e.g., past an image line end point to make a full cut), under-cuts(e.g., cutting short of an image line end point), angled cuts, andcustom cutting paths (e.g., to achieve cutting turns, acute angles,etc.) to achieve cutting a design that substantially resembles adisplayed image of the design (e.g., on the screen 112).

FIG. 28A provides a schematic view of a virtual design mat or virtualmat 2800 having designs 2805 comprising one or more images or glyphs2810 to be cut on an electronic cutting machine 610. The designs mayinclude a circle glyph 2810 a and a square glyph 2810 b. The controllerdevice 200 knows the position of the glyphs 2810 a, 2810 b on thevirtual mat 2800 that relate to a physical cutting mat. After thedesigns 2805 are cut using the electronic cutting machine 610, thecontroller device 200 knows that those areas cut no longer have paper,or that they are already cut, and to remind the user or prevent the userfrom placing other glyphs over those cut areas.

FIG. 28B provides a schematic view of the virtual mat 2800 showingkeep-out or cut areas 2820 after the designs are cut. The dashed areas2820 a, 2820 b show where the corresponding glyphs 2810 a, 2810 b havealready been cut from the physical paper on the cutting mat. Anillustration, such as the figure shown, showing the virtual mat keep-outareas 2820 may be shown to the user (e.g., on the screen 112 of thecontroller device 200) to indicate that the user should not place glyphsin those areas. Alternatively, the controller device 200 may not allowthe user to place any portion of a glyph within the keep-out areas 2820.The virtual mat 2800 with keep-out areas 2820 may be manually saved bythe controller device 200, for example, when glyphs 2810 have been cutand the cutting mat has not been ejected from the electronic cuttingmachine 610. Alternatively, the user may save information on the alreadycut mat (e.g., to memory 250 of the controller device 200 or a connectedmemory device) for future use, which includes information of whatlocations have already been cut.

FIG. 28C provides a schematic view of a composite image 2830 on thevirtual mat 2800. The composite image 2830 comprises layers of componentimages 2840 that collectively provide the composite image 2830 visually,and also mechanically during physical assembly of component images 2840cut from a material on the electronic cutting machine 610. The usage ofa collection of component images 2840 to form a composite image 2830,digitally and/or physically is referred to herein as image layering anddigital paper layering. In some examples, the user can assemble acomposite image 2830 on the virtual mat 2800 or select a pre-madecomposite image 2830. The composite image 2830 may be configured ordesigned by an artist and provided to the user for consumption (e.g.,via a cartridge 510 or the Internet). The composite image 2830 mayinclude a home location, which is the location of a vector path that,when all the vectorized component images 2840 arranged in the homelocation, provides the user the composite image 2830.

When a user initiates a cutting operation or executes an exploded viewoperation, the composite image 2830 is exploded into the non-overlappingcomponent images 2840 for cutting and later assembly, as shown in FIG.28D. In some implementations, separate component image filescorresponding to each component image 2840 are used for providing theexploded view, while in other implementations, the component images 2840are created or extrapolated from the composite image 2830 (e.g., viasegmenting the image). In the example shown, the composite image 2830 isassembled from a body component image 2840 a, a first hair componentimage 2840 b, a second hair component image 2840 c, a shoes componentimage 2840 d, a crown component image 2840 e, and a dress componentimage 2840 f. If the composite image 2830 is cropped, the correspondingcomponent images 2840 may be cropped accordingly. A semi-composite stateof the composite image 2830 may be provided where the component images2830 can be arranged with overlapping and non-overlapping vector paths.

In some examples, the user may recolor, flood fill, paint, shade,texture, other otherwise alter all or parts of the composite image 2830and/or any of the corresponding component images 2840 so as to customizethe look of the image(s) 2830, 2840. In shading, for example, the usermay altering the color of raster art to make it a different color whilemaintaining the shading of the raster art. In texture filling, the usermay remove the raster art from inside a vector border and replacing itwith a pattern.

Referring again to FIG. 28C, each component image 2840 may have a vectorregion, which is an area created by the boundary of a vector path. Insome implementations, a buffer region 2850 is disposed around theperimeter or boundary of the vector path of the component image 2840.The buffer region 2850 allows cutting the component image 2840 along itsperimeter while maintaining any coloration (e.g., via printing) ofcomponent image 2840 completely up to the cut perimeter. The bufferregion 2850 may have a threshold thickness that stays constant or is notexceeded (e.g., maximum or minimum) when the component image 2840 isscaled or altered. In some implementations, the buffer region 2850 iscreated by extrapolating colors outwardly beyond the image perimeter.For example, pixel colors may be propagated a threshold number of pixelsoutwardly form the image perimeter and overlapping colors mixedappropriately (e.g., according to a mixing criteria, suchred+blue=purple).

Table 1 provides example use cases that illustrate various operationsthat can be performed on composite images 2830 (full and semi-compositestate of the composite image 2830) and/or component images 2840. Otheruses are possible as well. In some examples, the user may wish toexecute a machine operation, such a print operation, a cut operation, ora print and cut operation from the controller device to realize a designin physical form. The user may also execute one or more imagemanipulation operations on the composite images 2830 (full andsemi-composite state of the composite image 2830) and/or componentimages 2840 before executing the machine operation.

TABLE 1 Composite Semi-Composite Exploded Print Alter the image, printAlter the image, move Alter the image, explode and and cut, peel anduse. some/all vector regions, print the image, print and cut, Cut Alterthe image, flood and cut, peel, layer if desired peel, layer if desiredand fill some/all vector and use. use. regions, print and cut, Alter theimage, move Alter the image, explode peel and use. some/all vectorregions, flood the image, flood fill Alter the image, shade fillsome/all vector regions, some/all vector regions, fill some/all vectorprint and cut, peel, layer if print and cut, peel, layer regions, printand cut, desired and use. if desired and use. peel and use. Alter theimage, move Alter the image, explode Alter the image, some/all vectorregions, shade the image, shade fill texture fill some/all fill some/allvector regions, some/all vector regions, vector regions, print print andcut, peel, layer if print and cut, peel, layer and cut, peel and use.desired and use. if desired and use. Alter the image, move Alter theimage, explode some/all vector regions, the image, texture fill texturefill some/all vector some/all vector regions, regions, print and cut,peel, print and cut, peel, layer layer if desired and use. if desiredand use. Additionally - vector Additionally - vector regions could bedeleted. regions could be deleted. Print Alter the image, print, Alterthe image, move Alter the image, explode peel and use. some/all vectorregions, print, the image, print, peel, Alter the image, flood peel,layer if desired and use. layer if desired and use. fill some/all vectorAlter the image, move Alter the image, explode regions, print, peel andsome/all vector regions, flood the image, flood fill use. fill some/allvector regions, some/all vector regions, Alter the image, shade print,pea, layer if desired and print, peel, layer if fill some/all vectoruse. desired and use. regions, print, peel and Alter the image, moveAlter the image, explode use. some/all vector regions, shade the image,shade fill Alter the image, fill some/all vector regions, some/allvector regions, texture fill some/all print, peel, layer if desiredprint, peel, layer if vector regions, print, and use. desired and use.peel and use. Alter the image, move Alter the image, explode some/allvector regions, the image, texture fill texture fill some/all vectorsome/all vector regions, regions, print, peel, layer if print, peel,layer if desired and use. desired and use. Additionally - vectorAdditionally - vector regions could be deleted. regions could bedeleted. Cut Alter the image, select Alter the image, move Alter theimage, explode the paper, cut, peel and some/all vector regions, selectthe image, select the paper, use. the paper, cut, peel, layer if cut,peel, layer if desired desired and use. and use.The user may alter or manipulate the image in any number of ways,including, but not limited to: sizing, flipping, rotating, shading,filling, painting, skewing, patterning, etc.

Additional details on image layering and other features combinable withthis disclosure can be found in U.S. Provisional Patent Application Ser.No. 61/178,074, filed on May 14, 2009 and having Attorney Docket No.:216683-124675 as well as U.S. Provisional Patent Application Ser. No.61/237,218, filed on Aug. 26, 2009 and having Attorney Docket No.:216683-127958. The disclosures of these prior applications areconsidered part of the disclosure of this application and are herebyincorporated by reference in their entireties.

FIG. 29 is an example of a security scheme 2900 for the controllerdevice 200. The security scheme 2900 may include an application manager2910 that handles encryption and verification of software running on thecontroller device 200 as well as the digital content used. In someexamples, the application manager 2910 may access a crypto memory 2920that may be configured as a write-once, read-many memory. The cryptomemory 2920 may only provide information when a long code is entered.Moreover, the crypto memory 2920 may provide seed data that must bedecoded by the application manager 2910 so that a suitable access key isprovided back to the crypto memory 2920 before any data is read out.Additionally, the crypto memory 2920 may include a bad-key lockout thatmay prevent any information from being read if, for example, threefailed attempts happen in providing the key.

The crypto memory 2920 may contain, for example, a private encryptionkey or password that allows access to the digital content, such asglyphs 2810, and other stored digital content (e.g., in memory 250 ofthe controller 200 or in a connected cartridge 510). To secure thedigital content it may be stored on the controller device 200 in anencrypted form. To access the digital content a key from the cryptomemory 2920 may be read and stored in volatile memory (e.g., such asRAM) and used to decode the encrypted digital content. Moreover, anencryption key may be stored in crypto memory 2920 that is used toencrypt and decrypt a license file 2930 that may store all of thecartridge identifiers and digital content rights authorized for theparticular controller device 200. In some examples, the license file2930 is tied to a specific device (e.g., an electronic cutting machine610). The license file 2930 can be encrypted and signed for the specificdevice, and a device specific key can stored in the crypto memory 2920.

A designer software application, executable on the controller device200, provides the user with tools to create a design 2805 using digitalcontent. The CRICUT® Application may be used as the designer softwareapplication to mix and match content on a cutting mat. In some examples,the images or glyphs 2810 are moved on the virtual mat 2800 by draggingthem around the screen 112, using nudge buttons (moves the image by somepredetermined interval), or by inputting an x/y value for placement ofthe images on the virtual mat 2800. Images 2810 may be sized by using“handles” around the images 2810 on the screen 112 (e.g., handles areicons that surround an image that allow users to move, slant, rotate,etc.), by using the nudge buttons (e.g., a virtual button displayed onthe screen 112 or a physical button on the controller device 200) (tochange the size at a some predetermined interval), or by inputting awidth or height value into respective width or height input boxes on thescreen 112 (e.g., when inputting a height or width value, the user hasthe ability to either preserve the aspect ratio or break the aspectratio). Images 2810 may be stretched by dragging image handles on thescreen 112, using nudge buttons with the aspect ratio preservationturned off, or by inputting a value into the width or height input boxeswith aspect ratio preservation turned off. The images 2810 may also berotated by dragging the image handles on the screen 112, using the nudgebuttons, or by inputting a value into a rotate input box on the screen112. Images 2810 may be slanted (e.g., italicized) by dragging imagehandles on the screen 112, using the nudge buttons, or by inputting avalue in a slant input box on the screen 112. Any space between images2810 may be adjusted by the value of kerning that may be changed byselecting a group of images 2810 and inputting a value in a kerninginput box on the screen 112 or by using the nudge buttons.

The designer software application may selectively alter the appearanceof an image 2810 that receives an appearance altering operation, such asresizing, rotating, slanting, etc., so as to provide a generallydesirable effect. For example, when a pattern image 2810 is resized tofit a specific size design 2805 (e.g., for a cake or shirt), the usermay wish to have a pattern image 2810 of a particular width, whilemaintaining the height and general appearance of the pattern. Ratherthan having the height scaled proportional to the width of the image2810 or stretching or distorting the image 2810 by increasing the widthand maintaining the height constant, the designer software applicationrepeats a pattern of the image 2810 having a specific height to meet adesired width of the image 2810. The designer software application maycalculate the number of repetitions and also fractional repetitions ofthe image 2810 to provide a desired look of the patterned image 2810.The designer software application can also weld the repeated images 2810together.

Other features of the designer software application include mirroringand welding. Mirroring in the Y axis provides for images 2810 and groupsof images 2810 mirrored about a vertical axis by selecting the image2810 or image group and selecting a mirror Y button (e.g., a virtualbutton displayed on the screen 112 or a physical button on thecontroller device 200). Mirroring in the X axis provides for images 2810and groups of images 2810 be mirrored about a horizontal axis byselecting the image 2810 or image group and selecting a mirror X button(e.g., a virtual button displayed on the screen 112 or a physical buttonon the controller device 200). Welding is the process of connecting theoutside perimeters of two or more images 2810 (e.g., images 2510, 2520of FIG. 25A) to form a new image 2540 (FIG. 25C). Welding may be adefined property of an individual image 2810. Any images 2810 that areoverlapping and that have the welding property “turned on” (e.g.,enabled) will be interpreted by the designer software applicationrunning on the controller device 200 as needing a welding operation,which can be executed substantially instantaneously thereafter,rendering the resulting image 2810, 2540 on the screen 112.

Real size may be a feature of the designer software application thatallows the user to control the size of an image 2810 both relative to akey character in a font set or not relative to a key character in a fontset. The real size feature allows the user to put the designer softwareapplication in one of two modes. In some examples, a character set isselected where the capital “A” is the key character and a lower case “a”has a relative height of half that of the key character and thecharacters “Aa” are placed on the virtual cutting mat 2800 at a size of1 inch. When the relative size mode is selected (e.g. not real size)then the letter “A” will be 1 inch tall and the letter “a” will be 0.5inch tall. However, if the letter “a” is selected individually the sizewill be displayed as 1 inch tall even though it is only 0.5 inch tall.The letter “a” displays as 1 inch tall because that is its size relativeto the “A”. If the user inputs a value of 2 inches tall for the letter“a”, it will show up on the screen as 1 inch tall because it is stillrelative to the key character “A” which states that the letter “a” isalways half the height of the letter “A”. Values may also be directlyinput into the system to determine the size. For example, if the userturns on real size (also discussed as “true size”), the letter “A” willstill be 1 inch tall and the letter “a” will still be 0.5 inch tall.However, if the letter “a” is selected individually the size will bedisplayed as 0.5 inch tall. The letter “a” will display as 0.5 inch tallinstead of 1.0 inch tall because it is now showing the true height ofthe letter “a” and not the height relative to the key character. Thisalso allows a user to directly control the height of that letter “a.” Ifthe user wants the letter “a” to be 1 inch tall, the user doesn't haveto guess what value to enter into a height field on the screen 112.Instead, the user can turn on the True Size mode, select the letter “a”and enter a value of 1 inch into the height field.

Am additional feature of the designer software application includesdeletion. The user may be able to select and delete individual images aswell as groups of images from the virtual mat 2800. The image groups maybe based on selection of adjacent images 2810 or disparate images 2810.The image group may then be deleted. The designer software applicationcan also provide “undelete” or “undo” operations where the user has theability to undo on or more operations, such as a delete operation. Thedesigner software application can also provide a “redo” operation toredo the last operation.

Grouping may be a feature of the designer software application thatallows the user to group images 2810 to do one or many operations atonce to all items in a group. For example, the user may move the groupand maintain the location of each image 2810 in the group relative toanother. The user may size all the images 2810 in a group whilemaintaining the relative size of all the images 2810 in the group. Theuser may stretch all the images 2810 in a group so that the images 2810all stretch by the same proportions. The user may rotate all the images2810 in a group so that the images 2810 are all rotated as if they wereone image 2810. The user may slant all the images 2810 in a group sothat the images are all slanted by the same amount. The user may kernthe images 2810 in a group so that the horizontal spacing between theimages 2810 in the group is either increased or decreased regardless ofthe location of the images 2810 in a group, for example, to maintaineven spacing between the images 2810. The user may mirror all the images2810 of the group about a horizontal or vertical axis so that all theimages 2810 in the group mirror as if they are one image 2810. The usermay turn on or off the welding function or property for all the images2810 in the group.

Grouping may be accomplished in at least two ways. First, all images2810 that are selected on the keypad screen will by default belong tothe same group. Second, images 2810 may be joined together. Joiningimages may be done by turning on a “group mode” and selecting all theimages/groups that the user wants to join. The operation is completed byexiting group mode. Alternatively, the user may select an existing groupor image on the virtual mat 2800, exit to a keypad screen, selectadditional images from a keypad and then go back to the screen showingthe virtual mat 2800. Images 2810 within a group can be selectedindividually by first selecting the group and second by selecting theimage 2810 within the group. Once an individual image 2810 inside agroup is selected, then other operations may be performed on theindividual image 2810 without affecting the other images 2810 in thegroup. For example, the user may move the image 2810 within the groupwithout affecting the other location of any other image 2810 in thegroup. To un-group, the user may explode the group so that each image2810 in the group becomes individually selectable, not belonging to agroup.

Another feature of the designer software application includes a“Multi-Cut” system. The multi-cut system allows the user to select howmany times the electronic cutting machine 610 passes a cutting bladeover the same cut path so that the cutting blade is capable of cuttingthrough thicker materials. An example may include the desire to cutthrough heavy card stock where a single cutting pass by the electroniccutting machine 610 may not be able to completely cut through thematerial. In this case, the user may select three cuts using themulti-cut system. The electronic cutting machine 610 would retrace thecutting paths three times to accomplish the cut. Another feature of thedesigner software application includes selection of English or metricmeasurement systems to change the display to inches or metric units.

The designer software application may include outputting a design 2805to an associated electronic cutting machine 610 for cutting the design2805 on media, such as paper. Cutting may include a single or multi-cutscenario (discussed above). The multi-cut operation allows the user toselect how many times to pass the cutting blade over the same cut pathso as to enable cutting through relatively thick materials with a givencutting blade. A pause feature allows the user to pause the cuttingoperation and then resume the cutting operation at will during thecutting process. For example, during a pause, a user could change theparameters of the cutting process (i.e. speed, pressure, etc.) to changethe cut quality. The typical cutting operation allows the user to cut adesign 2805 displayed on the virtual mat 2800 on a physical mat of theelectronic cutting machine 610. A Load/Unload Mat feature allows theuser to load and unload media, such as paper, using controls on thecontroller device 200. The user may also control the cutting pressuresettings, speed, and other parameters of the electronic cutting machine610 through the controller device 200. For example, when the controllerdevice 200 is connected to the electronic cutting machine 610, the onlysetting a user would have to make on the electronic cutting machine 610itself would be to physically adjust a blade height.

In some implementations, the controller device 200 interfaces with aprinter (e.g., a laser printer, inkjet printer, photo printer, photocopier, etc.). The user has the ability to print a design 2805 on aprinter (e.g., using a USB connection) without the need of a personalcomputer. The user may print images, designs, etc., for use in a design2805 or for review of the layout prior to cutting. For example, when auser imports an image (e.g., a picture of a family member) to thecontroller device 200 for placement on a scrapbooking design 2805, theuser may use the controller device 200 to print the image on a photoprinter and/or execute a cutting operation for the image on theelectronic cutting machine 610. Alternatively, the user may use acombined printer/cutter device to combine the printing and cuttingoperations into a single machine.

The user may also use a find feature to locate images and content on thecontroller device 200. The user may search by keywords for content.Keywords may be delivered to the controller device 200 using libraryupdates. In some examples, the keywords may not be delivered whencontent is copied directly from a cartridge 510 unless that informationis available through metadata. Filtering may also be used to filtersearch results based on categories, for example.

The controller device 200 may also include security features to protectand authorize use of the content stored on the controller device 200, orauthorized for use. For example, when a cartridge 510 is paired to thecontroller device 200, the design software application may randomlycheck pre-loaded glyph images against the cartridge content to verifythat the cartridge 510 is an authorized cartridge 510 (e.g., a genuinecartridge) that contains artwork/content and not a dummy or counterfeitcartridge designed to look like a genuine cartridge.

An additional security feature may include multiple levels of encryptionto access content and/or the cutting path for the content. For example,authentication may be performed with a public/private keyinfrastructure.

Upgradeability may be enhanced through library downloads and updates.The controller device 200 may be connected through a network (e.g., theInternet) that will enable downloads of new content and/or libraries ofcontent. The update feature may also provide for the purchase of contentwithout requiring a physical cartridge 510 being connected to thecontroller device 200. For example, the user may visit a web-portal orrich internet application (RIA) and purchase content. The purchasedcontent may then be downloaded to the controller device 200 forauthorization and use. Alternatively, if the content is already loadedonto the controller device 200 but not yet authorized for use, anauthorization may be downloaded. Alternatively, a library update maydownload new content to the controller device 200 but not yet provideauthorization to use it. This may be helpful to the user for viewing thecontent with the controller device 200 to make a decision to purchasethe content. The library content may also be used to update metadataassociated with the content. Metadata may include keywords forcollections of content, keywords for each glyph of content,categorization of the content, pre-rendered keys for the digital overlayand more descriptive key renderings for the digital overlay.

Additionally, the applications (e.g., the CRICUT® Application) may beupdated from the network connection and the user may connect a cartridge510 to the controller device 200 and update the cartridge information.

Another feature may be on-the-fly shadow generation for the content. Inan example, the letter “A” may be shadowed from the basic cutting path.This may include pushing the extents of the cutting path outwardlyautomatically to create a shadow cutting path.

FIG. 30 provides a schematic view of an exemplary user interface 3000for the controller device 200. The controller device 200 may allow theuser to store images, overlays, and user manuals in local storage. Theuser interface 3000 may include a search list 3010 of applications orcontent libraries (e.g., cartridge libraries), a search input 3020,image scrolling 3030 and/or an image queue 3040, a garbage can 3050, akeypad icon 3060 (that changes the display to a virtual keypad for usertext input), a mat icon 3070 (that changes the display to a mat layoutdisplay such as is described in FIG. 32), and/or a filtering drop downlist 3080.

To locate content, the user can scroll through the search list 3010,which, in the example shown, provides an image or glyph 2810 and acartridge name 3014 of the cartridge 510 associated with that glyph2810. The search list 3010 may be populated with all content stored oraccessible by the controller device 200 (e.g., via the Internet or anexternal source in communication with the controller device 200). Insome examples, the search list 3010 is populated with search resultsbased on a string entered into the search string input 3020. Thecontroller device 200 compares the string of the search string input3020 with one or more keywords associated with each accessible glyph andreturns any matches (partial and/or exact) to the search list 3010. Thekeywords may be stored in a data structure, XML file, or databaseaccessible by the controller device 200. The search list 3010 may befurther refined by using a search filter 3080 (shown as a dropdown listof filter categories) and/or a display filter 3016 (e.g., alphabetical,new content only, owned content only, non-owned contently only, etc.).The search results may provide a listing of owned content (e.g., ingreen) as well as non-owned available content (e.g., in red) that can bepurchased for use. For example, selection of non-owned content canforward the user to a purchase screen for procurement of the non-ownedcontent. The non-owned content may be preinstalled (e.g., at a factory)on the controller device 200 or otherwise accessible, as by an externalsource such as the Internet.

FIG. 31 provides schematic view of another exemplary user interface 3100including cartridge content selection for the controller device 200. Insome examples, the cartridge 510 may include cutting instructions forthe electronic cutting machine 610, as well as keypad mappinginformation and/or keypad layout information. The controller device 200may read the information of a communicatively attached cartridge 510 andgenerate a layout for the user interface 3100 where the user may selectshapes provided by the cartridge 510. Similarly, the controller device200 may recognize an attached external resource, such as an electroniccutting machine or printing machine, and generate a machine specificuser interface 3100. The cartridge content may be stored locally on thecontroller device 200 or on a local communication system (e.g., anetwork, USB, etc.) In some examples, the content is downloaded to thecontroller device 200 through a local communication system (e.g., anetwork, USB, etc.). The user may use the screen 112 to select a desiredshape or content item and further manipulate it with the controllerdevice 200.

The user interface 3100 includes an overlay 3110, which may be stored onthe cartridge 510, or generated from images stored on the cartridge 510and mapped to virtual keys rendered on the screen 112 using an imagemapping stored on the cartridge 510. The controller device 200 mayaccess mapping information (e.g., an XML file or data structure) thatindicates which glyphs 2810 correspond to particular overlay or screenlocations. For example, a keypad template may have empty key locationsthat receive mapped glyphs 2810. In general, the controller device 200may store cartridge content and/or content-overlay mapping, but copyingof cartridge content may be prevented, or it may be performed throughauthorized methods (e.g., backup).

The user may change a view of the overlay 3110 on the screen 112 of thecontroller device 200 by selecting a shift key or Alt key, and/or userbutton 212, 214, 310 (to change the usage state). The overlay 3110displayed by the controller device 200 changes images based on an activefeature, the selected shift key or Alt key, and/or user button 212, 214,310. The user interface 3100 may include features such as zooming 3120,zooming increments (e.g., 50%, 75%, 100%, 150%, etc.), panning 3130(e.g., with pan acceleration), and the image queue 3040. The userinterface 3100 may also include an image sizer 3140 (e.g., slidercontrol with accompanying size display), a string window 3150 fordisplaying selected images (e.g., letters), an enter icon control 3160(for carriage returns in the string window 3150), and a cart icon 3170(for switching to the user interface 3000 having the content selectiontools, such as the search input 3020, image scrolling 3030 and/or animage queue 3040). The string window 3150

FIG. 32 provides schematic view of an exemplary user interface 3200 thatincludes a page/mat layout for the controller device 200. The userinterface 3200 may used to preview designs 2805 comprising one or moreglyphs 2810 prior to cutting the design 2805 on a peripheral device,such as the electronic cutting machine 610. This may be useful forWhat-You-See-Is-What-You-Cut (“WYSIWYC”). WYSIWYC may be more thansimply viewing the image of the design shape(s), but rather may allowthe user to selectively place images on an electronic representation ofthe cutting mat, a virtual mat 2800, to maximize the use of cuttablearea. This maximization may also be automatically performed by thecontroller device 200. Moreover the user interface 3200 may be used forrotating, stretching, and/or skewing of images before executing acutting operation. The user interface 3200 may also provide forexpandable modes and modes and features buttons (e.g., “pause” cutting).The user interface 3200 may allow for confirmation of the design 2805prior to cutting. This may be a confirmation window that displays allthe settings and asks for a confirmation before allowing a cuttingoperation. The user interface 3200 may include a keypad icon 3220 forswitching to the user interface 3100 having the overlay 3110 of akeypad.

To use cartridge content, the user may select glyphs 2810 from thesearch list 3010 (FIG. 30) and place them in the image queue 3040. Insome examples, selected glyphs 2810 are automatically placed directly onthe virtual mat 2800 (e.g., in a default position) (FIG. 32), while inother examples, the user can stage glyphs 2810 in the image queue 3040for placement on the virtual mat 2800. The image queue 3040 may be agroup edit field that contains a group of selected images (from thesearch list 3010 and/or the virtual mat 2800). For example, the imagequeue 3040 may provide a view of a current selection of glyphs 2810 onthe virtual mat 2800. In some instances, the order of the glyphs 2810 inthe image queue 3040 is the order of selection from the search list3010, the original order of placement on the virtual mat 2800, the orderof selection on the virtual mat 2800, left-to-right order on the virtualmat 2800, alphabetical order, or some other appropriate order.Re-ordering on the virtual mat 2800 may or may not be reflected in theimage queue 3040. In some examples, glyphs 2810 cannot be deleted fromthe image queue 3040, but rather only from the virtual mat 2800 and/orthe overlay 3110.

In some implementations, selection of a glyph 2810 from the search list3010 opens or switches to the overlay view 3100 with the overlay 3110populated with the glyphs 2810 of the corresponding selected cartridge510, with the selected glyph 2810 and any associated altered-state keys(e.g., shift or Alt key) highlighted or otherwise marked as selected.

FIG. 33 is an example 3300 of screen and menu transitions or changes forthe controller device 200. The controller device 200 may start up with asplash screen 3310 displayed on the screen 112, and then transition toan application launcher 3320 displayed on the screen 112. In the exampleshown, the application launcher 3320 provides selection of applicationprograms including a YourStory (photo album) application, a CRICUT®application, and a YUDU™ (silk screening) application, all available byProvo Craft & Novelty, Inc. of Spanish Fork, Utah.

FIG. 34 is an example 3400 of an application launcher 3410 displayed onthe screen 112 of the controller device 200. The application launcher3410 may provide software applications executable on the controllerdevice for interfacing with particular peripherals. For example, theapplication launcher 3410 may include one or more cutting applications3422, such as those provide by the CRICUT® application, for interactingwith an electronic cutting machine 610, such as the CRICUT® machine. Theapplication launcher 3410 may include a photo application 3424 thatprovides functions for manipulating and printing digital photos. Theapplication launcher 3410 may include designer application 3426, such asthe YUDU™ application, for creating screens and designs for a personalsilk screening machine, and a photo album application 3428, such asYourStory, that provides for photo album design, printing, and cutting.Additionally, there may be an application for a combined printer/cutterthat allows for designing what is to be print and cut, as well ascontrolling the peripheral to create the design. The applicationlauncher 3410 may also include a utilities application 3430 for settingoptions on the controller device 200, such as screen resolution, colorscheme, layout, etc.

FIG. 35 provides a schematic view of an exemplary controller devicelayout 3500. In the implementation shown, the controller device 200 mayinclude a zoom button 3510 (e.g., for zooming in on a particular area ofthe screen 112, using a stylus 210 or a user's finger on the touchscreen), a pan button 3520 (e.g., for panning about the screen 112) anda home button 3530 (for returning to a home display on the screen 112).The buttons 3510, 3520, 3530 are shown on the left side of thecontroller device 200, but may be placed in other locations. Thecontroller device 200 may also include a color display/touch screen typeof screen 112 for user data entry and glyph manipulation. The controllerdevice 200 may include a stylus quiver 218 to hold a stylus 210 when notin use. Moreover, the controller device 200 may include a cartridgeconnector 3540, a power indicator 3550, a USB connector 3560, a powerconnector 3570, and a power button 3580 for turning the controllerdevice 200 on and off.

FIG. 36 provides a schematic view of an exemplary application launcher3600 displayed on the screen 112 of the controller device 200. Theapplication launcher 3600 may include back and next icons 3612, 3614, anapplication launch icon 3616, and a cancel icon 3618. The applicationlaunch icon 3616 (e.g., activatable by the stylus 210 or the user'sfinger) may cause a list 3716 of applications to be displayed on thescreen 112, as shown in FIG. 37. The user can select an application fromthe list 3716 to be executed on the controller device 200. In theexample shown, the list 3716 of applications provided by the applicationlauncher 3616 include a CRICUT® application, a YuDu™ application, aphoto application and a home navigation selection; however, any numberand type of applications executable on the controller device 200 may beprovided in list 3716 of applications.

FIG. 38 provides a schematic view of an exemplary device settings screen3800 displayed on the screen 112 of the controller device 200 foradjusting controller device settings. The device settings screen 3800may provide a parameter list 3810 with respective parameter values 3820,which the user can edit. Example parameters of the parameter list 3810include default zoom, max zoom, zoom increments, pan acceleration, andsleep time (e.g., the time lapse before the screen 112 goes to sleep toconserve battery power). A list navigation bar 3830 allows the user toscroll through the parameter list 3810.

FIG. 39 provides a schematic view of an exemplary navigation screen 3900displayed on the screen 112 of the controller device 200. The navigationscreen 3900 may include a collection of software applications and/orsetting menus. In the example shown, the navigation screen 3900 providesa list of applications, including a designer software application button3910, an image viewer application button 3912 and a settings button 3914(e.g., where each button is a selectable image, hypertext link, etc.displayed on the screen). Upon selecting an application, the applicationis launched (e.g., executed on the controller device 200) and displayedon the screen 112 for use by the user.

FIG. 40 provides a schematic view of an exemplary user interface startscreen 4000 for the designer software application (e.g., accessiblethrough the navigation screen 3900). The user can use the user interfacestart screen 4000 to start a new design by selecting a new design button4010, load a saved design by selecting a load saved design button 4012,or load a saved cut paper by selecting a load saved cut paper button4014 (e.g., where each button is a selectable image, hypertext link,etc. displayed on the screen). When the user starts a new design, theuser is presented with a blank virtual mat for content selection andlayout. When the user loads a saved design, prior design work ispresented to the user on the screen 112 for further design and/orcutting. The user may also turn off the device with a power button 4016.

When the user loads a saved cut paper, the system will have stored thelayout for a previously cut piece of paper (e.g., cut by the CRICUT®machine). For example, the controller device 200 used to cut the paper,knows the location of any previously cut content (e.g., by retrievinginformation for the previously cut content from a data store or memorysource). Thus, when loading a saved cut paper, the controller device 200may avoid cutting over already cut areas. The saved cut paper may beused to show the user where the paper has already been cut (e.g., byshowing a grayed out area) or by preventing placement of content on thevirtual mat over the previously cut area. In this way, the user may loadand unload paper and re-use that paper without having to guess at theplacement of content on the virtual mat for subsequent cuts. Thecontroller device 200 may remember the cut areas by storing the cuttinginformation for the mat (e.g., by storing in non-volatile memory).

FIG. 41 provides a schematic view of an exemplary user interfacemat-size selection screen 4100 displayed on the screen 112 of thecontroller device 200. In the example shown, the user may select a matsize for use with an associated electronic cutting machine 610. Here,three sizes of mats are shown including 12″×6″, 12″×12″ and 24″×12″. Asshown, the 12″×6″ mat size 4112 is selected, and the user may select OK4114 to confirm the selection or select cancel 4116 to cancel theselection.

FIG. 42 provides a schematic view of an exemplary design selection loadscreen 4200 displayed on the screen 112 of the controller device 200. Inthe example shown, the design selection load screen 4200 shows acollection 4220 of saved designs. The saved designs may be presented asa list that includes a thumbnail view of the design and a name that theuser chose to associate with the design when saving the design. Here,“design 1” 4222 is shown as selected. The user may select OK 4114 toconfirm the selection or select cancel 4116 to cancel the selection.

FIG. 43 provides a schematic view of an exemplary mat design screen 4300displayed on the screen 112 of the controller device 200. In the exampleshown, the virtual mat 2800 is shown on the left side of the mat designscreen 4300 as having a grid pattern. On the right side of the matdesign screen 4300, a content attribute section 4310 may be shown toassist the user in placing content. The content attribute section 4310may include position information on the virtual mat 2800 such as width,height, rotation, slant, and kerning for the content. To adjust variouscontent attributes, a joystick or arrow key type control 4320 may beused to increase or decrease the attribute values. Additionally, quicklaunch buttons 4330 may be used to switch from the mat view to theoverlay view, etc. The mat design screen 4300 may also include otherbuttons 4340, such as user defined buttons, save or save as buttons,etc.

Referring to FIG. 44, the mat design screen 4300 may include a mat menuscreen 4400 that includes options such as send to cutter 4410 (allowingthe user to send content to an associated electronic cutting machine610), file path 4420 (displaying a current file path or file location),options 4430 (allowing selection of an options menu to configuresettings of the design software application, controller device 200and/or the electronic cutting machine 610), system 4440 (allowingselection of a systems menu to configure system settings (e.g., hardwarespecific settings) of the design software application, controller device200 and/or the electronic cutting machine 610), and/or exit 4450(allowing the user to exit the program).

Referring to FIG. 45, the mat design screen 4300 may include a mat entryscreen 4500. Similar to the example shown in FIG. 43, the virtual mat2800 is shown but the display may also show small and large incrementbuttons 4510, 4520. The small increment buttons 4510 may be used toadjust attribute values with relative small or micro increments (e.g.,0.001 increments) while the large increment buttons 4520 may allow forrelatively large or macro increments (e.g., 1.000). By providing bothlarge and small increment adjustment capabilities, the user may get to adesired value faster.

FIG. 46 provides a schematic view of an exemplary keypad/overlay screen4600 displayed on the screen 112 of the controller device 200. Thekeypad/overlay screen 4600 provides a graphical representation ofcontent associated with a cartridge 510 or memory device connected to orstored on the controller device 200. For example, the keypad/overlayscreen 4600 includes an overly region 4610 including each glyph 2810(e.g., an iconic representation of the content, such as the letter “p”as shown) of the associated cartridge 510 or memory device that the usermay select and use in a design (e.g., by tapping the glyph with a stylus210 or finger). When the user makes a selection, the glyph 2810 mayappear in a selection region 4620 (e.g., which may have one or morelines, similar to a word editor). In this way, the user can stringmultiple glyphs 2810 together and then transfer the glyphs 2810 to thevirtual mat 2800 for positioning and sizing. In some implementations,the transfer of glyphs 2810 from the selection region 4620 to virtualmat 2800 is automatic, while in other implementations, the user canstage glyphs 2810 in the selection region for placement on the virtualmat 2800. The selection region 4620 may include scroll arrows 4622, 4624that allow the user to scroll backward and forward, respectively, acrossa long string of glyphs 2810 for review. In some examples, the selectionregion 4620 only provides a group edit view of the glyphs 2810 selected(either via the virtual mat 2800 or the overlay region 4610, where theuser can add and/or remove glyphs 2810. The order of the glyphs 2810 inthe selection region 4620 may be the order of selection from the overlayregion 4610, the original order of placement on the virtual mat 2800,the order of selection on the virtual mat 2800, left-to-right order onthe virtual mat 2800, alphabetical order, or some other appropriateorder. Re-ordering on the virtual mat 2800 may or may not be reflectedin the selection region 4620.

The name of the cartridge 510 associated with the displayed glyphs 2810may be displayed in a cartridge name portion 4632 of a cartridge region4630 (e.g., shown in the example as located below the overlay region4610). The user select different cartridges 510 in the cartridge region4630 to change the collection of glyphs 2810 shown in the overlay region4610 to match the selected cartridge 510, while leaving the selectionregion 4620 persistent to allow modification of a glyph string createdtherein (e.g., by concatenating more glyphs 2810 or otherwise editingthe selected glyphs 2810). In the cartridge region 4630, the user mayuse left and right spin controls 4634, 4636 to scroll through a list ofavailable cartridges 510 to select a cartridge 510. A displayedbacklight button 4638 may be used to adjust the brightness and/orcontrast of the screen 112 depending on ambient light conditions. Adisplayed mat button 3640 allows the user to switch between thekeypad/overlay screen 4600 and the mat design screen 4300 or mat entryscreen 4500.

The digital overlay displayed in the overlay region 4610 of thekeypad/overlay screen 4600 may be considered an arrangement of glyphs2810 on the screen 112 that are available for user viewing andselection. The glyphs 2810 may be rendered to the screen 112 based onvarious inputs. In a first example, the content may include pre-renderedimages for each glyph 2810 or each screen arrangement (e.g., thepre-rendering having a JPEG or PNG formatted image). In this way, thecontroller device 200 simply loads the image to the screen 112 fordisplay. Additionally, each set of digital overlays may be pre-rendered.This may include “shifted” glyphs 2810 (e.g., when the user presses ashift key the lower case “a” become an upper case “A”).

In another example, the controller device 200 may generate the digitaloverlays based on the content of the cartridge 510. For example, thecutting paths may be downloaded from the cartridge 510 and thecontroller device 200 may render the glyph 2810 using the outer extentsof the cutting paths and inner paths. However, such a rendering may nottake into account special keys such as “shift” or “space”.

In another example, the digital overlay may be first rendered using thecartridge content and then updated (e.g., using an Internet connection)to download additional renderings that may include special buttons forshift keys, etc.

FIG. 47 provides a schematic view of an exemplary keyword search screen4700 displayed on the screen 112 of the controller device 200. Thekeyword search screen 4700 includes a search string region 4710, akeyboard region 4720 (e.g., displaying a QWERTY keyboard for dataentry), and a results region 4730. To locate content (e.g., oncartridges 510), the user may type in all or part of the name of thecontent in the search string region 4710 using the keyboard region 4720.In the example shown, the user has input “hat” in a search textbox 4712of the search string region 4710 to search for content related to “hat”.The controller device 200 (or software executing thereon) may searchcontent collections related to “hat” or “hats”, as well as the name ofspecific glyphs 2810. The controller device 200 may also search contentmetadata tags for relations to the search term. Search results aredisplayed in the results region 4730. In the example shown, the name ofa “Hats” cartridge is shown in a results listing portion 4732 of theresults region 4730, which may be a drop down menu, list view, etc. toshow multiple results. The results region 4730 may also display forwardand back scroll buttons 4734, 4736 to scroll through results in listedin the results listing portion 4732. The user may select OK 4714 toconfirm a selection or operation or select Cancel 4716 to cancel aselection or operation.

FIG. 48 provides a schematic view of an exemplary entry screen 4800displayed on the screen 112 of the controller device 200. The entryscreen 4800 may be used to name designs for saving, for entering designsfor loading, etc. The entry screen 4800 includes a naming region 4810, akeyboard region 4820 (e.g., displaying a QWERTY keyboard for dataentry), and a filing region 4830. The user may type in the name of thedesign in a name textbox 4812 of the naming region 4810, select a savingaction, such as “Save” or “Save As”, in a save control 4832 (e.g., dropdown list) and/or a file location in a filing control 4834 (e.g., whichmay open file path dialog box) both in the filing region 4830, and thenOK 4814 to confirm a selection or operation or select Cancel 4816 tocancel a selection or operation.

FIGS. 49-53 provide schematic views of an exemplary designer softwareapplication 4900 executable on the processor 240 of the controllerdevice 200. The designer software application 4900 includes anapplication screen 4910 allowing a user to select an image viewer 4912,a designer application 4914, and/or a settings viewer 4916. In theexample shown, the user has selected the designer application 4914having a designer start screen 4920 that allows the user to select astart menu 5200 (See FIG. 52), a load cut design operation 4922, a newdesign operation 4924, and/or a load saved design operation 4926. Theload cut design operation 4922 opens a load cut design screen 4930 thatallows the user to select a design 4932, confirm (OK) 4934 or cancel4936 the selected design, or select the start menu 5200. The new designoperation 4924 opens a mat size screen 4940 that allows the user toselect a mat size 4942 (e.g., 12×4, 12×12, 12×24, etc), confirm (OK)4944 or cancel 4946 the selected mat size 4942, or select the start menu5200. The load saved design operation 4926 opens a load saved designscreen 4950 that allows the user to select a design 4952, confirm (OK)4954 or cancel 4956 the selected design, or select the start menu 5200.

Referring to FIG. 50, upon selecting and confirming the selection of amat size 4942 in the mat size screen 4942, the designer softwareapplication 4900 provides a mat design screen 5000. The mat designscreen 5000 allows selection of the following operations: cut 5002(e.g., to perform a cutting operation on an electronic cutting machine610, see the progress of the cut, and/or to save a cut operation), zoom5004 (e.g., zoom in and/or out), pan 5006 (e.g., pan or move a viewingarea right, left, up, or down), properties 5008, resize 5010 (e.g., tochange a size of the virtual mat 2800, as by enlarging or reducing thesize), jog 5012 (e.g., to move the virtual mat 2800 right, left, up, ordown), keypad 5014, and a mat menu 5300 (see FIG. 53). The propertiesoperation 5008 opens a mat entry screen 5030 allowing selection ofoperations including back-to-mat screen 5032, small increment 5034,large increment 5036, sizing keypad 5038, and the start menu 4922.Selection of the sizing keypad 5038 operation opens an entry form 5040that accepts text entries, for example, in an input box 5042, where theentered text is confirmed by an OK operation 5044 or canceled by acancel operation 5046. The entry form 5040 also allows selection of thestart menu 4922.

Referring to FIG. 51, upon selecting the keypad operation 5014 in themat design screen 5000, the design software application 4900 provides akeypad screen 5100, which allows the selection of the followingoperations: scroll left 5102, scroll right 5104, back-to-mat screen5106, search 1508, previous 1510, next 1512, list cartridges 1514, addtext 1516, and the start menu 4922. Other operations may be included aswell. Upon selecting the list cartridges operation 1514, the user mayselect a list owned cartridges operation 1518, list non-owned cartridgesoperation 1520 (e.g., to view other available cartridges 510 forpurchase, for example), or an “other” operation 1522, which may includeoperations such as listing new cartridges 1524, listing offlinecartridges 1526, or recovering cartridges 1528. Upon selecting thesearch operation 1058, a keyword search screen 1530 is provided thatincludes operations for searching cartridges 510 and/or content oncartridges 510. The operations of the keyword search screen 1530 mayinclude cancel 1532 (to cancel a search operation and return to thekeypad screen 5100), OK 1534 (to confirm or execute a search operationand return to the key pay screen with returned text 1501), current font1536 (to set a text font from a list of fonts 1537, such as a drop downlist), highlighted previous 1538 (to move to a previous highlighteditem), highlighted next 1540 (to move to a next highlighted item), listfont matches 1542, add text 1544, and the start menu 4922

FIG. 52 provides a schematic view of the start menu 5200. The start menu5200 may be a drop down list, dialog box, etc., that allows the user toselect operations including exit program 5202 (to exit the designsoftware application), system 5204 (e.g., to alter system settings),options 5206 (e.g., to alter attributes of the design softwareapplication, such as look and feel), and/or file 5308 (e.g., to open,close, save, create new, find, etc. a design).

FIG. 53 provides a schematic view of the mat menu 5300. The mat menu5300 may be a drop down list, dialog box, etc., that allows the user toselect operations including exit program 5302 (to exit the designsoftware application), system 5304 (e.g., to alter system settings),options 5306 (e.g., to alter attributes of the design softwareapplication, such as look and feel), and/or file 5308 (e.g., to open,close, save, create new, find, etc. a design). The mat menu 5300 mayalso include operations such as change mat size 5310 (to change the sizeof the virtual and/or actual mat size), cut 5312 (e.g., to perform acutting operation on an electronic cutting machine 610), weld 5314(e.g., to perform a welding operation to merge multiple images togetherso has to have a single outer cut path), and mat options 5316 (e.g., toalter attributes of the virtual mat 2800). The mat menu 5300 may alsoinclude a load operation 5318 for loading a saved design or a saveoperation 5320 for saving a design (e.g., on the virtual mat 2800) orcut operation.

FIG. 54 provides a schematic view of a cartridge pairing screen 5400 ofthe design software application 4900 for pairing or marrying a cartridge510 with the controller device 200. The cartridge pairing screen 5400allows the user to select operations including adding 5402 a cartridge510 (to be paired with the controller device 200), confirming 5406 thepairing (e.g., confirming the cartridge selection and/or providing aconfirmation of the pairing operation (success or failure)), and viewing5408 any licenses (e.g., any licenses associated with the selected orpaired cartridge(s) 510). The user may also select the start menu 5200.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. Accordingly, otherimplementations are within the scope of the following claims.

1. A method of validating a cartridge for use with a controller device,the method comprising: reading a cartridge identifier from at least oneof memory of the cartridge and memory of the controller device;obtaining known content associated with the cartridge based on thecartridge identifier; reading actual content from memory of thecartridge; comparing the known content with the actual content; andpermitting communication between the controller device and the cartridgewhen the known content matches the actual content.
 2. The method ofclaim 1, wherein comparing the known content with the actual contentcomprises comparing at least one Bézier curve of the known content witha corresponding at least one Bézier curve of the actual content.
 3. Themethod of claim 1, further comprising allowing usage of contentassociated with the cartridge with the controller device when the knowncontent matches the actual content.
 4. The method of claim 3, furthercomprising accessing the memory of the controller device forinstallation of the content associated with the cartridge and storing tothe controller device memory any uninstalled allowed content associatedwith the cartridge.
 5. The method of claim 1, wherein the known contentis obtained from at least one of memory of the controller device and anexternal source in communication with the controller device.
 6. Themethod of claim 1, wherein the known content and the actual content eachcomprise a glyph.
 7. The method of claim 1, further comprising executinga cutting operation of a design on an electronic cutting machine incommunication with the controller device, the design comprising allowedcartridge content.
 8. The method of claim 1, further comprisingestablishing communication between the cartridge and the controllerdevice, the controller device reading a cartridge identifier from memoryof the cartridge.
 9. The method of claim 1, further comprisingestablishing communication between the controller device and an externalresource, the external resource receiving a resource operation forexecuting a design on the external resource, the design includingcontent associated with the cartridge; obtaining the cartridgeidentifier for the cartridge; searching the memory of the controllerdevice for the cartridge identifier; and allowing execution of theresource operation after the cartridge identifier is located in thememory of the controller device.
 10. The method of claim 9, furthercomprising checking existence of communication between the controllerdevice and the external resource, the external resource terminatingexecution of any resource operations upon cessation of communicationbetween the controller device and the external resource.
 11. The methodof claim 1, further comprising: writing a controller device identifierto the memory of the cartridge; and writing the cartridge identifier tothe memory of the controller device.
 12. The method of claim 11, furthercomprising preventing additional controller device identifiers frombeing stored to the memory of the cartridge.
 13. The method of claim 11,further comprising: removing the controller device identifier from thememory of the cartridge; and removing the cartridge identifier from thememory of the controller device.
 14. The method of claim 1, furthercomprising offering purchase of a usage right of the cartridge when theknown content differs from the actual content.
 15. The method of claim15, further comprising allowing execution of a cutting operation afterselling a usage right for the cartridge when the known content differsfrom the actual content.